Control of distributed printing with multiple printers

ABSTRACT

A technique for distributed printing that ensures favorable operability within a sufficiently short time. The procedure first generates intermediate print data and executes the parallel rendering process by time sharing to sequentially convert page data on the first page of the intermediate print data into data adequate for the printers. Transmission of final print data converted for the first printer is carried out in parallel with the rendering process for the second printer. In a similar manner, transmission of converted final print data to the second printer and third printers is carried out in parallel with the rendering process for the next printer. The parallel rendering process sequentially converts page data on the second page of the intermediate print data into data adequate for the printers. Subsequently, the parallel rendering process sequentially converts page data on the third page of the intermediate print data into data adequate for the printers.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.09/980,111, filed Nov. 30, 2001, the disclosure of which is incorporatedherein by reference.

TECHNICAL FIELD

The present invention relates to a technique of outputting print data ofinterest, which are to be printed, to multiple printers in adistributive manner.

BACKGROUND ART

Recent advancement of the computer network enables a plurality ofprinters to be readily connected to one information processing apparatuslike a personal computer. In the structure where one informationprocessing apparatus connects with multiple printers, print datagenerated by the information processing apparatus may be output to therespective printers in a distributive manner. When there is a large massof print data, it takes an undesirably long time to complete printingwith only one printer. Output of the print data to multiple printers ina distributive manner desirably shortens the total time required forprinting.

The prior art technique has a variety of operatability-related problemsdiscussed below.

Problems Regarding Operatability of Printing

The prior art technique requires the operator to adequately divide adocument to be printed and individually output a print command to themultiple printers. This makes the series of operations significantlycomplicated and leads to poor operatability and insufficiently shortenedprinting time.

It is thus highly demanded to attain the good operatability and thehigh-speed distributed printing.

Problems Regarding Acquisition of Favorable Resulting prints

In the prior art technique, it is required to set various pieces ofinformation in an information processing apparatus for distributedprinting. The various pieces of information to be set includeinformation on the printer names for identifying printers specified asdestinations of distribution and paper-related information like thepaper size and the paper type. A data input window is open on a display,and the operator inputs data on the window through operations of akeyboard and a mouse, so as to set the required pieces of information.

The information processing apparatus notifies each printer specified bythe printer name of information regarding the printing performance ofthe printer, such as the paper-related information, prior to actualdistributive output of the print data to the respective printers. Eachprinter prepares for printing to satisfy the paper-related information,based on such notification. The information processing apparatus thenoutputs the print data to each printer that has been ready for printing.

In this prior art arrangement, the setting with regard to thepaper-related information may be out of the range of the printingperformance possessed by a certain printer specified as the destinationof distribution. For example, A3 may be set to the paper size, while thecertain printer specified as the destination of distribution is capableof printing up to the size A4. The printing requirement with the A3paper to the printer having the printing performance of up to the sizeA4 does not ensure the favorable resulting print from the printer.

It is accordingly demanded to adequately set various pieces ofinformation, such as the paper-related information, and thereby ensurepreferable resulting prints.

Problems Regarding Coincidence of Printing Area

In the prior art technique, when the multiple printers specified asdestinations of distribution are of different types, printing on sheetsof an identical size with different printers does not ensure anidentical printing area on the sheets. This causes some irregularity inresulting prints. Each printer has an unprintable area on the paperarea, and the size of the unprintable area depends upon the type of theprinter. This leads to a variation in printable area among differenttypes of printers. Here the unprintable area represents any area thatdoes not allow printing, due to the relation of the sheet feed mechanismto paper, for example, a lower end or a right end of the paper.

It is accordingly demanded to enable resulting prints having a perfectlyidentical size and position of the printing area to be obtained from themultiple printers specified as the destinations of distribution.

DISCLOSURE OF THE INVENTION

The object of the present invention is thus to solve at least part ofthe above problems and to ensure favorable resulting prints with goodoperatability.

The present invention is directed to a first distributed printingcontrol apparatus, which includes: a data allocation module that dividesprint data, which is an object to be printed, by page and specifiesinformation representing pages allocated to multiple printers; and adata output control module that outputs the print data in a distributivemanner to the multiple printers according to the information specifiedby the data allocation module. The first distributed printing controlapparatus is capable of printing multiple copies of the print dataaccording to a requirement. The data allocation module arranges pagesincluded in each copy in a sequence of the pages, divides all the pagesof the multiple copies into the number of the multiple printersspecified as destinations of distribution, and allocates respectivedivisions to the multiple printers. The data output control modulecarries out the distributive output of the print data to the multipleprinters in a substantially parallel manner, the data output controlmodule converting the print data of each page, sequentially from a headpage of each division, to a format suitable for each printer specifiedas the destination of distribution and then performing each distributiveoutput.

In the first distributed printing control apparatus of the aboveconstruction, the data allocation module specifies allocation of therespective pages of the print data to the multiple printers. Theoperator is thus not required to individually output the print commandto each of the printers specified as the destinations of distribution.This arrangement thus ensures favorable operatability. In this firstdistributed printing control apparatus the distributive output of theprint data to the respective printers is performed in a substantiallyparallel manner. The data output control module converts the print dataof each page, sequentially from a head page of each division, to aformat suitable for each printer specified as the destination ofdistribution and then performing each distributive output.

The technique of the present invention carries out the series ofprocessing to obtain the print data of the head page adequate for therespective printers sequentially: that is, the head page allocated tothe first printer, the head page allocated to the second printer, andthe head page allocated to the third printer. While the series ofprocessing is executed for the head page allocated to the secondprinter, the print data obtained as the result of the processing for thehead page allocated to the first printer is output to the first printer.The process of generating the print data adequate for a certain printeris thus carried out in parallel with the process of outputting thepreviously obtained data to another printer. Compared with the prior arttechnique, this technique effectively shortens the total time requiredfor printing.

In accordance with one preferable application, the first distributedprinting control apparatus further includes: a virtual printer driverstorage module that stores a virtual printer driver for specifyinginformation on a virtual printer corresponding to the multiple printers;and an intermediate print data generation module that executes thevirtual printer driver and thereby obtains intermediate print data,which is adequate for the virtual printer, from an application programthat generates source data of the print data. The intermediate printdata thus obtained is specified as the print data used in the dataallocation module and the data output control module.

In the first distributed printing control apparatus with the virtualprinter driver, the intermediate print data is obtained by outputtingonly one print command from the application program to the virtualprinter driver. The distributed printing of the intermediate print datato the respective printers is carried out automatically. The operator isthus required to carry out only one series of printing operation on theapplication program. This arrangement effectively ensures excellentoperatability.

The present invention is also directed to a second distributed printingcontrol apparatus, which includes: a data allocation module that dividesprint data, which is an object to be printed, by page and specifiesinformation representing pages allocated to multiple printers; a dataoutput control module that outputs the print data in a distributivemanner to the multiple printers according to the information specifiedby the data allocation module; and a printer speed performance detectionmodule that detects a performance on a printing speed of each of themultiple printers. The data allocation module specifies the pagesallocated to the multiple printers according to the performance on theprinting speed of each printer detected by the printer speed performancedetection module.

In the second distributed printing control apparatus of the aboveconstruction, the data allocation module specifies allocation of therespective pages of the print data to the multiple printers. Theoperator is thus not required to individually output the print commandto each of the printers specified as the destinations of distribution.This arrangement thus ensures favorable operatability. In this seconddistributed printing control apparatus, the number of pages to beallocated to each of the multiple printers is specified according to theperformance information on the printing speed of each printer. Thisarrangement enables the printer with the high printing speed performanceto print a large number of pages, while causing the printer with the lowprinting speed performance to print a small number of pages. This makesthe respective printers conclude the printing operations almostsimultaneously, thus effectively shortening the total time required forprinting.

In accordance with one preferable application, the second distributedprinting control apparatus further includes a distribution informationsetting module that causes an input window to be displayed on a displaydevice and sets various pieces of information regarding distribution ofthe print data based on input data from an input device. The dataallocation module specifies the pages allocated to the multipleprinters, based on the various pieces of information set by thedistribution information setting module. The distribution informationsetting module has a display control module that generates anillustrated image, which includes an arrangement of printing media andcorresponds to the information specified by the data allocation module,based on the various pieces of information and causes the illustratedimage to be displayed on the display device.

The operator sees the illustrated image displayed by the display controlmodule and is thereby informed of the form of distributed printing inthe process of setting the various pieces of distribution-relatedinformation in the input window. This visually informs the operator ofthe distributed form prior to actual execution of the distributedprinting, thus further enhancing the operatability.

The present invention is further directed to a third distributedprinting control apparatus, which includes: a data allocation modulethat divides print data, which is an object to be printed, by page andspecifies information representing pages allocated to multiple printers;and a data output control module that outputs the print data in adistributive manner to the multiple printers according to theinformation specified by the data allocation module. The data allocationmodule specifies number of pages to be allocated to each of the multipleprinters, such that each specified set of pages are printed with anidentical printer.

In the third distributed printing control apparatus of the aboveconstruction, the data allocation module specifies allocation of therespective pages of the print data to the multiple printers. Theoperator is thus not required to individually output the print commandto each of the printers specified as the destinations of distribution.This arrangement thus ensures favorable operatability. In this thirddistributed printing control apparatus, the number of pages to beallocated to each of the multiple printers is specified, such that eachspecified set of pages are printed with an identical printer. Theresulting print obtained from each printer that has concluded theprinting operation is the specified set of pages. This arrangement thusensures excellent operatability in collection of resulting prints.

In accordance with one preferable application, the third distributedprinting control apparatus further includes a printer speed performancedetection module that detects a performance on a printing speed of eachof the multiple printers. The data allocation module specifies thenumber of pages to be allocated to each printer, such that eachspecified set of pages are printed with an identical printer, inresponse to an externally input predetermined first command. Otherwisethe data allocation module specifies the number of pages to be allocatedto each printer according to the performance on the printing speed ofeach printer detected by the printer speed performance detection module.

This arrangement ensures excellent operatability in collection ofresulting prints in the case of input of the first command. In the caseof no input of the first command, on the other hand, as discussedpreviously, the arrangement enables the respectively printers toconclude the printing operations almost simultaneously, thus desirablyshortening the total time required for printing. Input or non-input ofthe first command readily changes over the mode between the speedpreference mode and the print collection convenience preference mode(handling preference mode). This also ensures the excellentoperatability.

In the third distributed printing control apparatus that enables themode to be readily changed over between the speed preference mode andthe handling preference mode, the data allocation module specifies thenumber of pages to be allocated to each printer, based on the conditionthat each specified set of pages are printed with an identical printerand according to the performance on the printing speed of each printerdetected by the printer speed performance detection module, in responseto both an externally input predetermined second command and theexternally input predetermined first command.

This arrangement attains both the handling preference and the speedpreference in the case of input of both the first command and the secondcommand.

In accordance with another preferable application of the thirddistributed printing control apparatus, the data allocation module has aunit setting module that changes over the specified set of pages betweena unit of each copy and a unit of each set of identical pages, inresponse to an externally input predetermined third command.

In response to the externally input third command, the specified set ofpages is changed over between the unit of each copy and the unit of eachset of identical pages.

In accordance with still another preferable application, the thirddistributed printing control apparatus further includes a distributioninformation setting module that causes an input window to be displayedon a display device and sets various pieces of information regardingdistribution of the print data based on input data from an input device.The data allocation module specifies the pages allocated to the multipleprinters, based on the various pieces of information set by thedistribution information setting module. The distribution informationsetting module has a display control module that generates anillustrated image, which includes an array of printing media andcorresponds to the information specified by the data allocation modulebased on the various pieces of information and causes the illustratedimage to be displayed on the display device.

The operator sees the illustrated image displayed by the display controlmodule and is thereby informed of the form of distributed printing inthe process of setting the various pieces of distribution-relatedinformation in the input window. This visually informs the operator ofthe distributed form prior to actual execution of the distributedprinting, thus further enhancing the operatability.

The present invention is also directed to a fourth distributed printingcontrol apparatus that controls distributed printing and includes: aprinter specification module that specifies multiple printers asdestinations of distribution; and a distributive output module thatoutputs print data, which is an object to be printed, to the multipleprinters specified by the printer specification module in a distributivemanner. The fourth distributed printing control apparatus furtherincludes: a condition setting module that causes a data input box forsetting a predetermined condition relating to a printing performance ofeach printer to be displayed on a display device, receives input datainto the data input box from an input device, and sets the predeterminedcondition based on the input data; a printer performance informationcollection module that collects performance information with regard tothe predetermined condition from each of the multiple printers specifiedby the printer specification module; and a data input restriction modulethat restricts the input data in the data input box according to theperformance information of each printer collected by the printerperformance information collection module.

In the fourth distributed printing control apparatus of the aboveconstruction, the printer specification module specifies multipleprinters as destinations of distribution, whereas the condition settingmodule sets a predetermined condition relating to the printingperformance of each printer. The printer performance informationcollection module collects the performance information with regard tothe predetermined condition from each of the multiple printers specifiedby the printer specification module. The data input restriction modulerestricts the input data in the data input box according to thecollected performance information of each printer.

The predetermined condition set in the data input box accordinglyreflects the performance information of each printer. The adequatesetting of the predetermined condition ensures distributed printingaccording to the performance of the printer, thus effectively givingfavorable resulting prints.

In accordance with one preferable application of the fourth distributedprinting control apparatus, the data input restriction module specifiesa set of performance information, which includes all the performanceinformation of the respective printers collected by the printerperformance information collection module, and restricts the input datain the data input box within a range of the specified set of performanceinformation.

The input data in the data input box is restricted within the range ofthe specified set of performance information, which includes all theperformance information of the respective printers with regard to thepredetermined condition. This arrangement enables printing to be carriedout with the performance possessed by at least one of the multipleprinters specified as the destinations of distribution, thus ensuringthe high-performance printing operation.

In accordance with another preferable application of the fourthdistributed printing control apparatus, the data input restrictionmodule specifies a set of common performance information, which iscommon to all the performance information of the respective printerscollected by the printer performance information collection module, andrestricts the input data in the data input box within a range of thespecified set of common performance information.

The input data in the data input box is restricted within the range ofthe specified set of common performance information, which is common toall the performance information of the respective printers with regardto the predetermined condition. This arrangement enables printing to becarried out with the performance possessed by any of the multipleprinters specified as the destinations of distribution, thus ensuringthe printing operation with any of the multiple printers.

In accordance with still another preferable application of the fourthdistributed printing control apparatus, the data input restrictionmodule has a mode changeover module that selectively changes over aworking mode between a first mode and a second mode, the first modespecifying a set of performance information, which includes all theperformance information of the respective printers collected by theprinter performance information collection module, and restricting theinput data in the data input box within a range of the specified set ofperformance information, the second mode specifying a set of commonperformance information, which is common to all the performanceinformation of the respective printers collected by the printerperformance information collection module, and restricting the inputdata in the data input box within a range of the specified set of commonperformance information.

This arrangement enables the input data in the data input box to berestricted within the range of the specified set of performanceinformation, which includes all the performance information of therespective printers with regard to the predetermined condition or withinthe range of the specified set of common performance information.

The fourth distributed printing control apparatus that is capable ofchanging over the working mode between the first mode and the secondmode, the mode changeover module has a module that displays a switch forthe mode changeover on the display device, receives input data foroperating the switch from the input device, and gives an instruction tochange over the working mode based on the input data.

The operator implements the changeover of the working mode through anoperation of the input device. This arrangement thus ensures theexcellent operatability.

In one preferable embodiment of the fourth distributed printing controlapparatus, the condition setting module displays an option display boxshowing options possibly input in the data input box, together with thedata input box, and sets one option selected among the options andspecified from the input device as the predetermined condition, and thedata input restriction module prohibits at least part of the optionsincluded in the option display box from being specified from the inputdevice, so as to restrict the input data in the data input box.

This arrangement enables the operator to select one of the optionssatisfying the predetermined condition according to the performanceinformation of the printer in the option display box, while not allowingthe operator to select any of the options not satisfying thepredetermined condition according to the performance information of theprinter. This enhances the operatability of data input in the data inputbox.

In accordance with another preferable application, the fourthdistributed printing control apparatus further includes a group mappingmodule that maps a plurality of printers to each group, wherein theprinter specification module specifies the multiple printers by a unitof group mapped by the group mapping module.

This arrangement enables the multiple printers to be specified by theunit of a group as the destinations of distribution, thus ensuringfavorable operatability.

In another preferable embodiment of the fourth distributed printingcontrol apparatus, the printer specification module has a name displaycontrol module that displays names assigned to the specified multipleprinters on the display device.

The display on the display device informs the operator of the multipleprinters specified as the destinations of distribution.

In the fourth distributed printing control apparatus with the namedisplay control module, the printer specification module has an inputcontrol module that displays switches, which correspond to therespective printer names displayed by the name display control moduleand are operated to exclude the corresponding printers from thedestinations of distribution, and receives operation data of theswitches from the input device. The distributive output module has anoutput resource exclusion module that excludes a printer, which isdetermined that the corresponding switch has been operated based on theoperation data received by the input control module, from an outputresource of the print data.

Any of the multiple printers once specified as the destinations ofdistribution may be excluded from the destinations of distributionthrough a simple operation of the corresponding switch. This arrangementensures excellent operatability.

In still another preferable embodiment of the fourth distributedprinting control apparatus, the printer specification module has apriority order specification module that specifies an order of priorityallocated to the specified multiple printers, and the distributiveoutput module carries out the distributive output by taking into accountthe order of priority specified by the priority order specificationmodule.

Allocation of the order of priority to the multiple printers specifiedas the destinations of distribution desirably enhances convenience incollection of the resulting prints.

The fourth distributed printing control apparatus, which restricts theinput data within the range of the specified set of performanceinformation including all the performance information of the respectiveprinters, further includes a performance decision module that determineswhether or not each of the multiple printers specified by the printerspecification module has a printing performance represented by thepredetermined condition set by the condition setting module. Thedistributive output module has an output resource exclusion module thatexcludes a printer, which has been determined by the performancedecision module not to have the printing performance, from an outputresource of the print data.

The printing operation is carried out with the performance possessed byat least one of the multiple printers specified as the destinations ofdistribution. Some printers may thus not have the printing performancerepresented by the predetermined condition set by the condition settingmodule. Such printers are excluded from the output resources of theprint data. This arrangement effectively prevents the print data frombeing mistakenly output to the printers without the printing performancerepresented by the predetermined condition.

In the fourth distributed printing control apparatus having the outputresource exclusion module, the printer specification module has a namedisplay control module that displays names of the specified multipleprinters on the display device, and the name display control module hasa module that prohibits distinctive display of the name of the printer,which is excluded by the output resource exclusion module.

The display on the display device informs the operator of the printer,which does not have the printing performance with regard to thepredetermined condition and is thereby excluded from the destinations ofdistribution. This arrangement ensures excellent operatability.

In accordance with still another preferable application of the fourthdistributed printing control apparatus, the printer performanceinformation collection module receives information regardingperformances of the multiple printers from printer drivers provided forrespective types of the multiple printers and collects the performanceinformation with regard to the predetermined condition from the receivedinformation.

This arrangement enables the performance information of the respectiveprinters to be received from the printer drivers provided for therespective types of the multiple printers.

The present invention is further directed to a fifth distributedprinting control apparatus, which includes: a first setting module thatspecifies multiple printers as destinations of distribution; a secondsetting module that sets paper information with regard to paper used forprinting; and a distribution control module that processes externallyinput print data based on the specification by the first setting moduleand the setting by the second setting module and outputs pluraldivisions of the print data, which satisfy the paper information, to themultiple printers specified as the destinations of distribution. Thefifth distributed printing control apparatus supplies the pluraldivisions of the print data output from the distribution control moduleto the multiple printers via printer drivers provided for the respectiveprinters. The fifth distributed printing control apparatus furtherincludes: an information input module that receives information withregard to an unprintable area included in a paper area in each of themultiple printers specified by the first setting module; and a printablearea computation module that computes a printable area in the paperarea, which is printable with any of the multiple printers, from theinformation of the respective printers received by the information inputmodule. The distribution control module has an area fitting module thatcauses the plural divisions of the print data to be fit to the printablearea computed by the printable area computation module.

The fifth distributed printing control apparatus thus constructedreceives information with regard to an unprintable area included in apaper area, on which printing is performed, in each of the multipleprinters specified as destinations of distribution, and computes aprintable area in the paper area, which is printable with any of themultiple printers, from the received information of the respectiveprinters. Externally input print data is distributed and output to befit to the printable area. Each division of the print data accordinglyoccupies an identical printing area in any of the multiple printersspecified as the destinations of distribution. This arrangement thuseffectively enables resulting prints having a perfectly identical sizeand position of the printing area to be obtained from the multipleprinters specified as the destinations of distribution.

In accordance with one preferable application of the fifth distributedprinting control apparatus, the area fitting module has a margincorrection module that corrects margins on each sheet of paper definedby the print data, based on the printable area computed by the printablearea computation module. This arrangement makes the print data fit forthe printable area by simply correcting the margins on the sheet ofpaper defined by the print data based on the printable area. Thisdesirably simplifies the configuration.

In accordance with another preferable application of the fifthdistributed printing control apparatus, the information input modulereceives the information from the printer drivers provided for therespective printers. This arrangement facilitates input of theinformation with regard to the unprintable area included in a certainsize of paper area used in each printer.

In accordance with still another preferable application of the fifthdistributed printing control apparatus, the multiple printers areconnected via a computer network. The use of the computer networkfacilitates connection with a large number of printers.

The present invention is not restricted to the applications of the firstthrough fifth distributed printing control apparatuses discussed above,but may be directed to corresponding distributed printing controlmethods. Other applications of the present invention include computerprograms for attaining the functions of these apparatuses and methodsand computer readable recording media in which such computer programsare recorded. Typical examples of the recording media include flexibledisks, CD-ROMs, magneto-optic discs, IC cards, ROM cartridges, punchedcards, prints with barcodes or other codes printed thereon, internalstorage devices (memories like a RAM and a ROM) and external storagedevices of the computer, and a variety of other computer readable media.

Still other applications of the present invention include data signalsthat include the computer programs and are embodied in carrier waves, aswell as a program supply unit that supplies the computer programs via acommunication path. In the application of the program supply unit, thecomputer programs are stored, for example, in a server on the computernetwork, and a required program is downloaded to a computer via thecommunication path and executed to attain the apparatuses discussedabove and the corresponding methods.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram schematically illustrating the hardwarestructure of a computer system in a first embodiment of the presentinvention;

FIG. 2 is a block diagram schematically illustrating the general flow ofa distributed printing process;

FIG. 3 is a block diagram showing the functions of a virtual printerdriver 110 in the distributed printing process;

FIG. 4 is a block diagram showing the functions of a distributedprinting utility 120, which actualizes part of the distributed printingprocess;

FIG. 5 illustrates a ‘Printer’ window WN1;

FIG. 6 illustrates a ‘Distribution Settings’ card CD1 displayed on a‘Distributed Printing Properties’ dialog box WN2;

FIG. 7 shows a change of an illustrated image in a distributed formdisplay box by the combination of the settings in data input boxes id1to id3;

FIG. 8 shows an exemplified allocation of distributed printing in aspeed preference mode;

FIG. 9 shows an exemplified allocation of distributed printing in ahandling preference mode;

FIG. 10 shows a change of the illustrated image in the distributed formdisplay box by the combination of the settings in data input boxes id4and id5;

FIG. 11 illustrates a ‘Printer’ card CD2 displayed on the ‘DistributedPrinting Properties’ dialog box WN2;

FIG. 12 is a flowchart showing a series of processing described in anapplication program 100 and a series of processing described in avirtual printer driver 110;

FIG. 13 illustrates a ‘Print’ dialog box WN3 open on a CRT display 12 inresponse to execution of a ‘Print’ command on the application program100;

FIG. 14 is a flowchart showing a distribution information settingroutine executed by a CPU 30;

FIG. 15 is a flowchart showing a first half of a processing routinedescribed in a distributed printing utility 120;

FIG. 16 is a flowchart showing a latter half of the processing routinedescribed in the distributed printing utility 120;

FIG. 17 is a flowchart showing details of the allocation specificationprocess executed at step S430;

FIG. 18 shows an example of output resource list data in the speedpreference mode;

FIG. 19 shows an example of output resource list data in the handlingpreference ode;

FIG. 20 is a timing chart showing the procedure of the embodiment fordistributed printing, compared with a prior art procedure;

FIG. 21 illustrates a ‘Printer’ card CD12 displayed on a ‘DistributedPrinting Properties’ dialog box WN12 in a second embodiment of thepresent invention;

FIG. 22 shows a ‘Group List’ dialog box WN13;

FIG. 23 shows a ‘Group Settings’ dialog box WN14;

FIG. 24 shows addition to a ‘Printers Belonging to’ display box id33;

FIG. 25 shows an example of group registration list data PD;

FIG. 26 is a flowchart showing a series of processing described in theapplication program 100 and a series of processing described in thevirtual printer driver 110 in the second embodiment;

5 FIG. 27 illustrates a ‘Print’ dialog box WN16 open on the CRT display12 in response to execution of a ‘Print’ command on the applicationprogram 100;

FIG. 28 is a flowchart showing a distribution information settingroutine executed by the CPU 30;

FIG. 29 is a flowchart showing a first half of a data input processingroutine executed by the CPU 30;

FIG. 30 is a flowchart showing a latter half of the data inputprocessing routine;

FIG. 31 shows a pull-down menu MN1 used for inputting a group name;

FIG. 32 shows a pull-down menu MN2 used for inputting paper size in a‘Functionality Preference’ mode;

FIG. 33 shows the pull-down menu MN2 used for inputting paper size in a‘Speed Preference’ mode;

FIG. 34 shows mapping of a ‘Paper Size’ data input box id141 to a‘Printers’ display box id113;

FIG. 35 illustrates a ‘Printer’ card CD12 in one modified example of thepresent invention;

FIG. 36 shows a pull-down menu MN2 used for inputting paper size in themodified example of the present invention;

FIG. 37 is a block diagram showing the functions of a distributedprinting utility 120C in a third embodiment of the present invention;

FIG. 38 is a flowchart showing a first half of a processing routinedescribed in the distributed printing utility 120;

FIG. 39 shows a process of computing a common printable area in a wholepaper area P; and

FIG. 40 shows an example of output resource list data.

BEST MODES OF CARRYING OUT THE INVENTION

Some modes of carrying out the present invention are discussed below aspreferred embodiments in the following sequence:

A. First Embodiment

A1. General Hardware Structure

A2. Distributed Printing Process

A3. Virtual Printer Driver

A4. User Interface

A5. Computer Programs

A6. Effects of Embodiment

B. Second Embodiment

B1. User Interface

B2. Computer Programs

B3.Effects of Embodiment

C. Third Embodiment

C1. Distributed Printing Process

C2. Computer Programs

C3. Effects of Embodiment

A1. General Hardware Structure

FIG. 1 is a block diagram schematically illustrating the hardwarestructure of a computer system in a first embodiment of the presentinvention. As illustrated, the computer system of the first embodimentincludes a computer 10, which is connected with a plurality of printers70, 80, . . . having substantial computer functions via a computernetwork 90 constructed as a Local Area Network (LAN). The computernetwork 90 is, however, not restricted to the LAN but may be any ofdiverse networks like the Internet, an Intranet, and a Wide Area Network(WAN).

The computer 10 is further connected with a CRT display 12 as aperipheral device and is locally connected with another printer 60. Thecomputer 10 has a computer main body 16, a keyboard 18, and a mouse 20.The computer main body 16 has a floppy disk drive 24 to read thecontents of a floppy disk 22.

The computer main body 16 includes a central processing unit or CPU 30,a ROM 31, a RAM 32, a display video memory 33, a mouse interface 34, akeyboard interface 35, an FDC 36, an HDC 37, a CRTC 38, a printerinterface 39, and a network control circuit 40, which are mutuallyconnected via a bus.

The ROM 31 is a built-in read only memory that stores therein diverseprograms. The RAM 32 is a readable and writable memory that storesvarious data therein. The display video memory 33 stores video datarepresenting images to be displayed on the CRT display 12. The mouseinterface 34 takes charge of transmission of data to and from the mouse20. The keyboard interface 35 takes charge of key inputs from thekeyboard 18. The FDC 36 is a floppy disk controller for controlling thefloppy disk drive (FDD) 24. The HDC 37 is a hard disk controller forcontrolling a hard disk drive (HDD) 41. The CRTC 38 is a CRT controllerfor controlling display of images on the CRT display 12 based on thedisplay video data stored in the display video memory 33. The printerinterface 39 controls data output to the locally connected printer 14.The network control circuit 40 includes a network card and is connectedto the computer network 90.

In this computer system, an operating system is stored in the HDD 41. Inresponse to power supply to the computer main body 16, the operatingsystem is loaded into a predetermined area in the RAM 32 according to aloader written in a boot block of the HDD 41. A real printer driverprovided for each of the types of the printers 60, 70, and 80 is storedin advance in the floppy disk 22 and is installed from the floppy diskdrive 24 into the computer 10 according to an activated presetinstallation program. The installed real printer driver is stored in theHDD 41, and is incorporated in the operating system and loaded into apredetermined area of the RAM 32 in response to power supply to thecomputer 10.

The computer system further includes a virtual printer driver 110 forspecifying information on a virtual printer. Like the real printerdriver, the virtual printer driver 110 is stored in advance in thefloppy disk and is installed from the floppy disk drive 24 into thecomputer 10 according to an activated preset installation program. Theinstalled virtual printer driver 110 is stored in the HDD 41, and isincorporated in the operating system and loaded into a predeterminedarea of the RAM 32 in response to power supply to the computer 10. Thecomputer program of the virtual printer driver 110 may be stored inanother portable recording medium (carriable recording medium), such asa CD-ROM, a magneto-optic disc, or an IC card, in place of the floppydisk 22. This computer program may be program data, which are downloadedfrom a specific server connecting with an external computer network (forexample, the Internet) via the computer network and transferred toeither the RAM 32 or the HDD 41.

The printers 60, 70, and 80 are laser printers that paint aphotosensitive drum with a laser beam to form a latent image, which isdeveloped by a toner and transferred onto a sheet. Diverse printers likeink jet printers and thermal transfer printers may alternatively beapplied for the printers 60, 70, and 80. Here the printers 60, 70, and80 are of respectively different types.

A2. Distributed Printing Process

In the computer system of the above configuration, the computer mainbody 16 generates print data to be printed and carries out a distributedprinting process to distribute the generated print data into theprinters 60, 70, and 80 connecting with the computer main body 16 forprinting. The details of the distributed printing process are discussedbelow.

FIG. 2 is a block diagram schematically illustrating the general flow ofthe distributed printing process. FIG. 3 is a block diagram showing thefunctions of the virtual printer driver 110 in the distributed printingprocess. FIG. 4 is a block diagram showing the functions of adistributed printing utility program (hereinafter simply referred to asthe ‘distributed printing utility) 120, which actualizes part of thedistributed printing process.

Referring to FIG. 2, an application program 100 working inside thecomputer main body 16 carries out image processing to generate videodata and issues a print command to make the video data printed. Inresponse to output of the print command from the application program100, the virtual printer driver 110 receives the print command andreturns performance information, which regards the performances of thevirtual printer assumed by the virtual printer driver 110, to theapplication program 100. More specifically, as shown in FIG. 3, a printcommand receiving module 111 of the virtual printer driver 110 receivesthe print command output from the application program 100, and aperformance information return module 112 returns the performanceinformation regarding the performances of the virtual printer inresponse to receipt of the print command by the print command receivingmodule 111.

The performances of the virtual printer represent the performances ofthe highest-performance printer among all the available printers asdestinations of distribution. In general, the high-performance printerapplies a high-quality program language for drawing. For example, thehigh-quality program language uses complicated drawing commands based onmathematical expressions to express figures, whereas a lower-qualityprogram language uses simple drawing commands based on bitmaps toexpress figures. In this embodiment, the performances of thehighest-performance printer among all the available printers as thedestinations of distribution are set to the performances of the virtualprinter. This arrangement enables the virtual printer driver 110 tocarry out a data conversion process (rendering process) in thehigh-quality program language. Since the high-quality program languageuses the complicated drawing command as mentioned above, the virtualprinter driver 110 is capable of actualizing the efficient renderingprocess for the highest-performance printer.

The available printers as the destinations of distribution are printersbelonging to a specific printer group set by a properties setting module113 among all the printers connected to the computer main body 16locally or via the network. Here the printers 60, 70, and 80 are theavailable printers.

More specifically, a performance information input module 114 receivesthe performance information of the respective printers 60, 70, and 80,which has been transmitted from printer drivers 130, 140, and 150(hereinafter referred to as real printer drivers) provided for therespective types of the printers 60, 70, and 80 to the distributedprinting utility 120. A virtual printer performance specification module115 selects the highest performance from the performance information ofthe respective printers 60, 70, and 80 and specifies the extractedperformance as performance information of the virtual printer. Theperformance information return module 112 returns the performanceinformation of the virtual printer to the application program 100.

The performance information specified by the virtual printer driver 110may be arbitrarily selected among the performance information of therespective printers 60, 70, and 80, instead of the performance of thehighest-performance printer adopted in this embodiment. The performanceinformation of the virtual printer may otherwise be preset performanceinformation that does not depend upon the performance information of therespective printers 60, 70, and 80.

In the virtual printer driver 110, the properties setting module 113activates a user interface 116 to set and store various pieces ofinformation required for printing. Some of he various pieces ofinformation required for printing are returned, together with theperformance information, to the application program 100 via theperformance information return module 112. The various pieces ofinformation required for printing include, for example, information withregard to the basic settings of printing like the printing quality, thecolor correction, and the type of halftoning, information with regard tothe settings of paper like the paper size and the printing orientation,information with regard to the printer group specifying availableprinters as destinations of distribution, and information with regard tothe distributed form in the distributed printing process. Among thesepieces of information, the information excluding those with regard tothe printer group and the distributed form is sent to the applicationprogram 100.

The application program 100 receives the performance information andother pieces of information mentioned above, converts the generatedvideo data into print data adequate for the printer (the virtualprinter) based on the input performance information and the other piecesof information, and transmits the converted print data to the virtualprinter driver 110. The conversion of the print data carried out herefollows the efficient rendering process as described previously, whileneither color conversion nor halftoning process carried out by the realprinter driver is performed here.

Referring to FIG. 2, the virtual printer driver 110 sets the print datatransmitted from the application program 100 as intermediate print dataand temporarily stores a data set or a collection of the intermediateprint data in the HDD 41 as an intermediate print file MF. Morespecifically, as shown in FIG. 3, a print data receiving module 117receives the print data transmitted from the application program 100,and an intermediate print data output module 118 specifies the inputprint data as intermediate print data and outputs a set of theintermediate print data to the HDD 41. The intermediate print data inthe intermediate print file MF is then read by the distributed printingutility 120. The intermediate print file MF may be stored in the RAM 32,in the floppy disk 22, or even in another external storage device,instead of the HDD 41. The virtual printer driver 110 also transmits thevarious pieces of information set by the properties setting module 113as printer property data to the distributed printing utility 120 via aproperty data output module 119.

Referring back to FIG. 2, the distributed printing utility 120 receivesthe intermediate print data constituting the intermediate print file MFand the printer property data and allocates the intermediate print datato the respective printers 60, 70, and 80 according to the informationwith regard to the printer group and the distributed form included inthe printer property data, and transmits the allocation to the realprinter drivers 130, 140, and 150 provided corresponding to therespective printers 60, 70, and 80. This series of processing carriedout by the distributed printing utility 120 is discussed in detail.

In the distributed printing utility 120, as shown in FIG. 4, anintermediate print data input module 121 first inputs the intermediateprint data constituting the intermediate print file MF, whereas aproperty data input module 122 receives the printer property datatransmitted from the virtual printer driver 110. An allocationspecification module 123 specifies allocation of the intermediate printdata, based on the information with regard to the printer group and thedistributed form included in the printer property data. Here theallocation means to group the intermediate print data by the unit ofeach page and specify pages to be printed with the printers 60, 70, and80 belonging to the specific printer group.

The allocation information thus specified is transmitted to an outputdata control module 124. The output data control module 124 actuallyallocates and outputs the intermediate print data, which has been inputinto the intermediate print data input module 121, to the real printerdrivers 130, 140, and 150 of the respective printers 60, 70, and 80,based on the transmitted allocation information. The data output to thereal printer drivers 130, 140, and 150 follows the series of processingdiscussed below.

A printer setting module 125 first gives an instruction to change thesettings via the printer drivers to the printers specified as thedestinations of allocation. An output command output module 126 issuesan output command. A performance information input module 127 receivesthe performance information regarding the performances of the respectiveprinters 60, 70, and 80 returned from the real printer drivers 130, 140,and 150 in response to the output command. The output data conversionmodule 124 converts the allocating pages of the intermediate print datainto data suitable for the printers 60, 70, and 80 specified as thedestinations of allocation, based on the performance informationtransmitted from the performance information input module 127 as well asthe information with regard to the basic settings of printing and theinformation with regard to the paper settings included in the printerproperty data (excluding the information with regard to the printergroup and the distributed form) transmitted from the property data inputmodule 122 (hereinafter this process of data conversion is referred toas the rendering process).

The output data control module 124 sends the converted print data asfinal print data to the real printer drivers 130, 140, and 150 via afinal print data output module 128. The real printer drivers 130, 140,and 150 cause the final print data to undergo a required series ofprocessing, such as color conversion or halftoning, suitable for eachprinter, which is not carried out by the virtual printer driver, andtransmit the processed final print data to the corresponding printers60, 70, and 80.

The distributed printing utility 120 has a printer monitoring module129, which monitors the conditions of the respective printers 60, 70,and 80, based on signals output from the real printer drivers 130, 140,and 150. The printer monitoring module 129 monitors the length of awaiting queue and occurrence of any error (for example, failure, paperjam, or out-of-paper) in each of the printers. The output data controlmodule 124 receives signals output from the printer monitoring module129 and changes the output resource of the allocated print data or stopsthe output with regard to the printer having a long waiting queue orbeing in any error state.

The performance information of the respective printers 60, 70, and 80transmitted from the real printer drivers 130, 140, and 150 is utilizedby the distributed printing utility 120 as described above, while beingtransmitted to the virtual printer driver 110 via a performanceinformation output module 12 a.

A3. Virtual Printer Driver

The following describes a change in state of the operating system whenthe virtual printer driver 110 is installed in the computer 10. Thedescription regards an example wherein Windows95 (trade mark byMicrosoft Inc.) is adopted as the operating system, on which the virtualprinter driver 110 works.

The user (operator) operates the computer 10 in the following sequenceto open a dialog box for setting various pieces of information requiredfor printing on the screen of the CRT display 12. The sequence ofoperations ‘Start’→‘Settings’→‘Printer’ opens a ‘Printer’ window. FIG. 5shows this ‘Printer’ window. In the case where the virtual printerdriver 110 is installed in the computer 10, an icon IC4 that correspondsto the virtual printer driver 110 and is expressed as, for example,‘Distributed Printing’ is displayed in the illustrated ‘Printer’ windowWN1, in addition to icons IC1, IC2, and IC3 representing the realprinter drivers 130, 140, and 150 individually provided for therespective types of the printers 60, 70, and 80. Like the real printerdriver, installation of the virtual printer driver 110 causes the iconIC4 corresponding to the virtual printer driver 110 to be displayed inthe ‘Printer’ window WN1.

The operator double clicks the icon IC4 ‘Distributed Printing’corresponding to the virtual printer driver 110 on the ‘Printer’ windowWN1 to open a window of the virtual printer driver 110 and clicks‘Printer’ and ‘Properties’ in the window. This series of operationsopens a dialog box ‘Distributed Printing Properties’ for setting variouspieces of information with regard to the virtual printer. The operatorcan input the settings of the various pieces of information in thedialog box ‘Distributed Printing Properties’ through the operations ofthe mouse 20 and the keyboard 18. This dialog box ‘Distributed PrintingProperties’ corresponds to the user interface 116 mentioned previously.

A4. User Interface

FIG. 6 illustrates the dialog box WN2 ‘Distributed Printing Properties’.Two cards CD1 ‘Distribution Settings’ and CD2 ‘Printer’ are provided inthe dialog box WN2 ‘Distributed Printing Properties’. The ‘DistributionSettings’ card CD1 is used to set the information with regard to thedistributed form in the distributed printing process. The ‘Printer’ cardCD2 is used to set the information with regard to the printer group asthe potential destinations of distribution, the basic settings ofprinting, and the paper settings. The operator selects either of the twocards CD1 and CD2 to be displayed in the dialog box WN2 throughoperations of the mouse 20. In the state of FIG. 6, the ‘DistributionSettings’ card CD1 is selected. The division of the information into thecards CD1 and CD2 is not restricted to the above example, but theinformation may all be included in one card or may be divided into threeor more cards.

As illustrated, the ‘Distribution Settings’ card CD1 includes threefields ‘Document’, ‘Recovery’, and ‘Time’ fd1, f2, and fd3. The‘Document’ field fd1 is used to set the specification of printing adocument, and has a data input box id1 ‘Copies’, a check box id2‘Collate’, a check box id3 ‘Bundle by Page or Copy’, a data input boxid4 ‘Job Grouping’, and a data input box id5 ‘Marked Page’. Therespective data input boxes (including check boxes in the followingdescription) id1 to id5 are designed in the following specification:

1) ‘Copies’ Data Input Box id1:

The number of copies to be printed is input in this data input box. Thedefault is the setting by the application program 100.

2) ‘Collate’ Check Box id2:

Gathering print is selected by checking this check box id2, andotherwise stack print is selected. The gathering print carries outprinting by the unit of copy and in the order of pages in each copy. Thestack print, on the other hand, carries out printing by the unit of pageand by the number of copies in each page. Namely printing is carried outby the unit of copy when the check box id2 is checked, while beingcarried out by the unit of page when the check box id2 is not checked.

3) ‘Bundle by Copy or Page’ Check Box id3:

A check in this check box id3 prohibits one copy or one set of identicalpages from being printed with multiple printers. No check in the checkbox id3, on the other hand, allows the copy or the set of identicalpages to be printed with multiple printers. In the off state of thischeck box id3, that is, in the case of not ‘Bundle by Copy or Page’, thenumber of pages allocated to each printer is varied according to theperformance of the printing speed (hereinafter referred to as theprinting speed performance) of the printer, so as to conclude theprinting operation substantially simultaneously in all the printersspecified as the destinations of distribution. Hereinafter this workingstate in which the number of pages allocated to each printer is variedaccording to the printing speed performance is referred to as the ‘speedpreference’ mode, which will be discussed later in detail.

4) ‘Job Grouping’ Data Input Box id4:

When one radio button ‘By Printer’ is selected in this data input boxid4, all the pages output from one printer are handled as one group. Theselection of this radio button prevents the results of a user'sspecified print job from being mixed with the results of printingrequired by another user in the share computer 70 or 80 connecting withthe network. When the other radio button ‘By Copy or Page’ is selected,one copy or one set of identical pages is handled as one group. Thelatter is utilized in the case where a user's specified print job isdistributed to the local printer 60 or in the case where no problemarises even if the results of the print job are mixed with the resultsof printing required by another user.

5) ‘Marked Page’ Data Input Box id5:

The marked page represents a head page or an end page of each group toallow discrimination in the case where resulting prints of a specifiedgroup are mixed with resulting prints required by another user. Inresponse to a check in a ‘Head’ check box, the marked page is printed atthe head position of each group. In response to a check in an ‘End’check box, on the other hand, the marked page is printed at the endposition of each group. The name of the document to be printed, thenumber of copies, the total number of pages, and the name of the userare printed on the marked page.

The ‘Document’ field fd1 includes a distributed form display box ddrepresenting the distributed form specified by the settings in the datainput boxes id1 to id 5, in addition to the data input boxes id1 to id5discussed above. An illustrated image in the distributed form displaybox dd shows the distributed form specified by the settings in the datainput boxes id1 to id5.

The check box id2 ‘Collate’ corresponds to the module of inputting the‘third command’ specified in the claims; the check box id3 ‘Bundle byCopy or Page’ corresponds to the module of inputting the ‘first command’specified in the claims; and the check box id4 ‘Job Grouping’corresponds to the module of inputting the ‘second command’ specified inthe claims.

The following describes a change of the illustrated image in thedistributed form display box dd by the combination of the settings inthe data input boxes id1 to id5 with reference to FIGS. 7 through 10.The description first regards a change of the illustrated image by thecombination of the settings in the ‘Copies’ data input box id1, the‘Collate’ check box id2, and the ‘Bundle by Copy or Page’ check box id3.

FIG. 7 shows a change of the illustrated image in the distributed formdisplay box dd by the combination of the settings in the data input boxid1 and the two check boxes id2 and id3. In the illustration of thetable, the columns show whether or not the print job is to be collated,that is, the on-off settings in the ‘Collate’ check box id2. The rowsshow whether or not the print job is to be bundled by copy or page, thatis, the on-off settings in the ‘Bundle by Copy or Page’ check box id3.In the example of the table, it is assumed that the number of copies setin the ‘Copies’ data input box id1 is four copies.

In the combination of ‘Collate’ and not ‘Bundle by Copy or Page’, thegathering print is selected. As shown in a cell C11 of the first row andthe first column in the table, the illustrated image shows that the1^(st) and the 2^(nd) pages of the 1^(st) copy and the 1^(st) page ofthe 2^(nd) copy are printed with the first printer 60, that the 2^(nd)page of the 2^(nd) copy and the 1^(st) and the 2^(nd) pages of the3^(rd) copy are printed with the second printer 70, and that the 1^(st)and the 2^(nd) pages of the 4^(th) copy are printed with the thirdprinter 80.

In the combination of not ‘Collate’ and not ‘Bundle by Copy or Page’,the stack print is selected. As shown in a cell C12 of the first row andthe second column in the table, the illustrated image shows that threecopies of the 1^(st) page are printed with the first printer 60, thatthe remaining copy of the 1^(st) page and two copies of the 2^(nd) pageare printed with the second printer 70, and that the remaining copies ofthe 2^(nd) page are printed with the third printer 80.

In the combination of ‘Collate’ and ‘Bundle by Copy or Page’, printingeach specified group with multiple printers is prohibited. As shown in acell C21 of the second row and the first column in the table, theillustrated image shows that the 1^(st) page of the 1^(st) copy to the2^(nd) page of the 2^(nd) copy are printed with the first printer 60,that the 1^(st) and the 2^(nd) pages of the 3^(rd) copy are printed withthe second printer 70, and that the 1^(st) and the 2^(nd) pages of the4^(th) copy are printed with the third printer 80.

In the combination of not ‘Collate’ and ‘Bundle by Copy or Page’, asshown in a cell C22 of the second row and the second column in thetable, the illustrated image shows that the required number of copies ofthe 1^(st) page are printed with the first computer 60 and that therequired number of copies of the 2^(nd) page are printed with the secondcomputer 70.

The example shown in the cells C11 and C12 of the first row in the tableof FIG. 7 is on the assumption that the printers 60, 70, and 80specified as the destinations of distribution have substantially equalprinting speed performances. When the printers 60, 70, and 80 havesubstantially equal printing speed performances, practically similarnumbers of pages are allocated to the respective printers. When theprinters 60, 70, and 80 specified as the destinations of distributionhave different printing speed performances, on the other hand, differentnumbers of pages are allocated to the different types of printers. Thisis allocation of distributed printing in the ‘speed preference’ mode.For example, the printing speed performance of the first printer 60 is20 ppm (pages per minute), the printing speed performance of the secondprinter 70 is 40 ppm, and the printing speed performance of the thirdprinter 80 is 40 ppm. In this example, the ratio of the printing speedperformance of the respective printers 60, 70, and 80 is 1:2:2. In thecase of allocation of distributed printing in the ‘speed preference’mode (that is, in the case of not ‘Bundle by Copy or Page’ correspondingto the first row in the table), the numbers of pages allocated to therespective printers are determined to follow this ratio of the printingspeed performance. The printers 60, 70, and 80 can thus conclude theprinting operations almost simultaneously.

FIG. 8 shows an exemplified allocation of distributed printing in the'speed preference’ mode. In this example, the job of printing fourcopies of a document including 5 pages is distributed into the threeprinters 60, 70, and 80. The printing speed performances of the printers60, 70, and 80 are respectively 20 ppm, 40 ppm, and 40 ppm as mentionedabove. In this case, the total number of pages to be printed is 20. Theallocation to the first printer 60, to the second printer 70, and to thethird printer 80 are respectively 4 pages, 8 pages, and 8 pagesaccording to the ratio of the printing speed performance (1:2:2) of therespective printers 60, 70, and 80. In the case of ‘Collate’, gatheringprint is selected as shown in FIG. 8. The 1^(st) to the 4^(th) pages ofthe 1^(st) copy are printed with the first printer 60. The 5^(th) pageof the 1^(st) copy, the 1^(st) to the 5^(th) pages of the 2^(nd) copy,and the 1^(st) and the 2^(nd) pages of the 3^(rd) copy are printed withthe second printer 70. The 3^(rd) to the 5^(th) pages of the 3^(rd) copyand the 1^(st) to the 5^(th) pages of the 4^(th) copy are printed withthe third printer 80. In the case of not ‘Collate’, stack printing isselected, and the numbers of pages allocated to the respective printers60, 70, and 80 are similarly determined according to the ratio of theprinting speed performance (1:2:2) of the respective printers 60, 70,and 80.

In the arrangement of this embodiment, in the case of not ‘Bundle byCopy or Page’ on the first row in the table of FIG. 7, allocation ofdistributed printing is specified in the ‘speed preference’ mode asdiscussed above. In the case of ‘Bundle by Copy or Page’ on the secondrow in the table of FIG. 7, on the other hand, allocation of distributedprinting is specified with preference given to handling (hereinafterthis is referred to as the ‘handling preference’ mode). FIG. 9 shows anexemplified allocation of distributed printing in the ‘handlingpreference’ mode. In the ‘handling preference’ mode, ‘Bundle by Copy orPage’, that is, allocation of distributed printing to prohibit one copyor one set of identical pages from being printed with multiple printers,facilitates collection of resulting prints from the respective printers.Like the example shown in FIG. 8, in the example of FIG. 9, the job ofprinting four copies of a document including 5 pages is distributed intothe three printers 60, 70, and 80. In the gathering print, the 1^(st) tothe 5^(th) pages of the 1^(st) copy are printed with the first printer60. The 1^(st) to the 5^(th) pages of the 2^(nd) copy and the 1^(st) tothe 5^(th) pages of the 3^(rd) copy are printed with the second printer70. The 1^(st) to the 5^(th) pages of the 4^(th) copy are printed withthe third printer 80. In the example of FIG. 35, the second printer 70prints two copies. This satisfies both the speed preference mode and thehandling preference mode. In the speed preference mode, according to theratio of the printing speed performance 1:2:2, it is expected that thefirst printer 60 prints one copy, the second printer 70 prints twocopies, and the third printer 80 prints two copies. Since only fivecopies are required, however, the third printer 80 prints the residualone copy.

In the case of ‘Bundle by Copy or Page’ on the second row in the tableof FIG. 7, allocation of distributed printing may be specified tosatisfy not the speed preference mode but the handling preference mode.In this case, in the handling preference mode that prohibits one copy orone set of identical pages from being printed with multiple printers,the pages are equally allocated to the respective printers irrespectiveof the printing speed performances of the printers. In the case wherethe number of copies can not be equally divided by the number ofprinters specified as the destinations of distribution as in theexamples of FIGS. 8 and 9, the greater number of copies is allocated tothe printer having the smaller ordinal number. For example, in the jobof printing four copies of a 5-page document with the three printers,the first printer 60 prints two copies, while the second printer 70 andthe third printer 80 respectively print one copy.

As described above, in the case of ‘Bundle by Copy or Page’ on thesecond row in the table of FIG. 7, allocation of distributed printingmay be specified to satisfy both the handling preference mode and thespeed preference mode or to satisfy not the speed preference mode butthe handling preference mode. The changeover between these two states isbased on the settings in the ‘Job Grouping’ data input box id4. When theradio button ‘By Printer’ is selected in the data input box id4, all thepages output from one printer are handled as one group. The speedpreference mode is thus active to take into account the printing speedperformances of the respective printers. When the other radio button ‘ByCopy or Page’ is selected in the data input box id4, one copy or one setof identical pages is handled as one group, so that the speed preferencemode is inactive. In the case of selection of the radio button ‘By Copyor Page’ in the data input box id4, irrespective of the printing speedperformances of the respective printers, one copy is allocated to eachof available printers and the residual copies are sequentially allocatedto the available printers.

The description then regards a further change of the illustrated imagespecified by the settings in the data input boxes id1 to id3 by thecombination of the settings in the ‘Job Grouping’ data input box id4 andthe ‘Marked Page’ data input box id5. FIG. 10 shows a change of theillustrated image in the distributed form display box dd by thecombination of the data input boxes id4 and id5. The example of FIG. 10shows a further change of the illustrated image, which is specified bythe settings in the data input boxes id1 to id3 in the cell C11 of FIG.7, by the combination of the settings in the data input boxes id4 andid5.

In the table of FIG. 10, the columns show the settings in the ‘JobGrouping’ data input box id4, that is, selection of either ‘By Printer’or ‘By Copy or Page’. The rows show the settings in the ‘Marked Page’data input box id5, that is, checks in the two check boxes ‘Head’ and‘End’.

In the case of a click of the radio button ‘By Printer’ in the ‘JobGrouping’ data input box id4, as shown by a cell CE11 of the first rowand the first column in the table, the illustrated image in the cell C11of FIG. 7 is not changed and all the pages printed with one printer arehandled as one group. In the case of a click of the other radio button‘By Copy or Page’, on the other hand, as shown by a cell CE12 of thefirst row and the second column, each copy or each page is handled asone group and distinguished from a subsequent group. In the actualservices, since no marked page is selected, the same printing resultsare obtained both in the case of the click of the radio button ‘ByPrinter’ and in the case of the click of the other radio button ‘By Copyor Page’.

When the marked page is specified in the ‘Marked Page’ data input boxid5, on the other hand, as shown by the second, the third, and thefourth rows in the table, the illustrated image is changed to make themarked pages (closed figures in the table) are inserted at the head, atthe end or at both the head and the end of the respective groupsspecified in the first row. The illustrated image specified by thistable is displayed in the distributed form display box dd.

Referring back to FIG. 6, the ‘Recovery’ field fd2 specifies anotherprinter as a recovery resource in the case of occurrence of any error inthe printer specified for distributed printing. The ‘Recovery’ field fd2has three radio buttons ‘No Recovery’, ‘Output to’, and ‘AutomaticallySelect Recovery Resource’. In the case of selection of the ‘No Recovery’radio button, no recovery is performed even when an error occurs in theprinter specified for distributed printing. In the case of selection ofthe ‘Output to’ radio button, the output resource input in a ‘Printer’data input box is set to the recovery resource. In the case of selectionof the ‘Automatically Select Recovery Resource’ radio button, the sametype of a printer as the printer with the error is set to the recoveryresource. When there is no same type of printer, an available printer isset to the recovery resource.

The ‘Time’ field fd3 specifies the time of printing. When a check box‘Specify Time’ is checked, the printing operation starts at the timespecified in the ‘Time’ field fd3.

The following describes the ‘Printer’ card CD2 on the ‘DistributedPrinting Properties’ dialog box WN2 with reference to FIG. 9. Asillustrated in FIG. 11, the ‘Printer’ card CD2 includes a ‘PrinterGroup’ field fd4, and ‘Paper Settings’ field fd5, and a settings displaybox fd6.

The ‘Printer Group’ field fd4 specifies a group of printers, which areused for distributed printing of a document and has a ‘Group Name’ datainput box id11, a ‘Printers’ display box id12, and a ‘Group Setting’button id13. The ‘Group Name’ data input box id11 sets the name of theprinter group and preset group names are provided as possible options.The ‘Printers’ display box id12 displays the names of the printersbelonging to the printer group set in the ‘Group Name’ data input boxid11. A click of the ‘Group Setting’ button id13 opens a non-illustratednew window and accepts user's data input, so as to allow addition anddeletion of an option to and from the options provided in the ‘GroupName’ data input box id11. The computer 10 gives an instruction ofdistributed printing to all the printers belonging to the printer groupspecified in the ‘Printer Group’ field fd4, that is, the respectiveprinters displayed in the ‘Printers’ display box id12. Among all theprinters connected to the computer main body 16 locally or via thecomputer network 90, the printers included in the printer groupspecified in the ‘Printer Group’ field fd4 are thus set as thedestinations of distributed printing.

The ‘Paper Settings’ field fd5 sets the paper and the printing qualityand has data input boxes ‘Paper Size’ ‘Orientation’, ‘Paper Type’,‘Color’, and ‘Resolution’ id14, id15, id16, id17, and id18.

The ‘Paper Size’ data input box id14 sets the paper size, and examplesof possible options include ‘A4 210×297 mm’, ‘A4 Lateral 210×297 mm’,‘Envelop 120×235 mm’, and ‘Postcard 100×147 mm’. The ‘Orientation’ datainput box id15 represents the orientation of paper set in the printerand has two options ‘Portrait’ and ‘Landscape’. The ‘Paper Type’ datainput box id16 specifies the type of paper, and ‘Plain’, ‘Superfine’,and ‘Glossy’ are provided as possible options. The ‘Color’ data inputbox id17 specifies the type of ink used in the printer 14, and ‘Color’and ‘Black’ are provided as possible options. The ‘Resolution’ datainput box id18 sets the printing resolution, and ‘Fast’ and ‘Fine’ areprovided as possible options. Here ‘Fast’ and ‘Fine’ respectivelyrepresent the resolutions of 360×360 (dots) and 720×720 (dots).

The settings display box fd6 displays desired data among the settings inthe ‘Printer Group’ field fd1 and the ‘Paper Settings’ field fd5.

Various pieces of information regarding the settings in the ‘DistributedPrinting Properties’ dialog box WN2 are input into the computer mainbody 16 through the user's operations of the mouse 20 and the keyboard18. The acceptance of the input data is restricted according to theperformance information of the respective printers 60, 70, and 80. Forexample, when the performance information of the respective printers 60,70, and 80 specifies the printable size up to A4 in all the printers 60,70, and 80, paper sizes of greater than A4 are excluded from the optionsin the ‘Paper Size’ data input box id14 in the ‘Distributed PrintingProperties’ dialog box WN2. Namely the input data regarding paper sizesof greater than A4 is not acceptable.

A5. Computer Programs

The respective modules 111 through 119 in the virtual printer driver 110shown in FIG. 3 are actualized by the virtual printer driver 110 as thecomputer program and series of processing executed by the CPU 30according to the virtual printer driver 110. The respective modules 121through 129 in the distributed printing utility 120 shown in FIG. 4 areactualized by the distributed printing utility 120 as the computerprogram and series of processing executed by the CPU 30 according to thedistributed printing utility 120.

Like the virtual printer driver 110, the distributed printing utility120 is stored in advance in the floppy disk 22 and is installed from thefloppy disk drive 24 into the computer 10 according to an activatedpreset installation program. The installed distributed printing utility120 is stored in the HDD 41, and is incorporated in the operating systemand loaded into a predetermined area of the RAM 32 in response to powersupply to the computer 10. Like the virtual printer driver 110, thedistributed printing utility 120 may be stored in another portablerecording medium (carriable recording medium), such as a CD-ROM, amagneto-optic disc, or an IC card, in place of the floppy disk 22. Thedistributed printing utility 120 may be program data, which aredownloaded from a specific server connecting with an external computernetwork (for example, the Internet) via the computer network andtransferred to either the RAM 32 or the HDD 41.

FIG. 12 is a flowchart showing a processing routine described in thevirtual printer driver 110 as well as a processing routine described inthe application program 100. The CPU 30 in the computer main body 16starts the processing in the application program 100 and carries out aseries of image processing to generate video data (step S210). Theapplication program 100 may be a general purpose application programused to create documents and pictures, and video data is generated bythe functions characteristic of each application program.

The CPU 30 executes a ‘Print’ command provided in the applicationprogram and thereby outputs a print command for distributed printing(step S220). FIG. 13 illustrates a ‘Print’ dialog box WN3 open on theCRT display 12 in response to execution of the ‘Print’ command on theapplication program 100. As illustrated, the ‘Print’ dialog box WN3 hasa ‘Printer Name’ data input box id21. The print command for distributedprinting is output from the application program 100 to the virtualprinter driver 110 in response to a click of an ‘OK’ button id22 withthe mouse 20, while a series of letters ‘Distributed Printing’, whichcorresponds to the ‘Distributed Printing’ icon IC4 discussed previouslywith FIG. 5, is selectively input in the ‘Printer Name’ data input boxid21. A click of a ‘Properties’ button id23 in the ‘Print’ dialog boxWN3 shifts the processing to a distribution information setting routineexecuted in the virtual printer driver 110. The process opens the‘Distributed Printing Properties’ dialog box WN2 on the CRT display 12and reads input data from the keyboard 18 and the mouse 20, so as to setvarious pieces of information regarding the distributed printing. Theprint command may be output from the application program via theoperating system.

FIG. 14 is a flowchart showing a distribution information settingroutine executed by the CPU 30. When the program enters this routine,the CPU 30 first opens the ‘Distributed Printing Properties’ dialog boxWN2 shown in FIG. 6 on the CRT display 12 (step S301). The CPU 30subsequently inputs various pieces of data through data input operationsof the keyboard 18 and the mouse 20 by the operator who checks thedisplay on the CRT display 12 (step S302). The various pieces of datacan be input in the ‘Distributed Printing Properties’ dialog box WN2shown in FIGS. 6 and 11 and include information regarding the form ofdistributed printing, information regarding the printer group,information regarding the basic settings of printing, and informationregarding the paper settings. An illustrated image generated from thevarious pieces of input data is shown in the distributed form displaybox dd in the ‘Distributed Printing Properties’ dialog box WN2. Theillustrated image may be any of the images shown in FIGS. 7 to 10. TheCPU 30 then stores the various pieces of data input at step S302 asprinter property data into the RAM 32 (step S303). The program then goesto RETURN and exits from this routine.

After completion of the processing according to this distributioninformation setting routine, the print command is output in response toa click of the ‘OK’ button id22 in the ‘Print’ dialog box WN3 with themouse 20. In the case where the ‘Properties’ button id23 is not clickedbut the ‘OK’ button id22 is clicked immediately with the mouse 20, theprinter property data stored in the RAM 32 in the previous cycle of thedistribution information setting routine (in the first cycle, presetinitial printer property data) are maintained without any modification.

In response to the output of the print command at step S220, the CPU 30shifts the processing to the virtual printer driver 110 and determineswhether or not the print command is input from the application program100 (step S310). In the case of no input of the print command, the CPU30 iteratively carries out the decision at step S310 and waits for inputof the print command from the application program 100. In the case ofinput of the print command at step S310, on the other hand, the CPU 30carries out the series of processing discussed below.

The CPU 30 first reads from the distributed printing utility 120 theperformance information of the respective printers 60, 70, and 80, whichhas been transmitted from the real printer drivers 130, 140, and 150provided for the respective types of the printers 60, 70, and 80 to thedistributed printing utility 120 (step S320). The CPU 30 then extractsthe highest performance out of the performance information of therespective printers 60, 70, and 80 and specifies the extracted highestperformance as the performance information of the virtual printer (stepS330). The CPU 30 then transmits the performance information of thevirtual printer to the application program 100 (step S340).

When the performance information of the virtual printer is transmittedfrom the virtual printer driver 110, the CPU 30 shifts the processing tothe application program 100 and receives the transmitted performanceinformation of the virtual printer (step S240). The CPU 30 subsequentlyconverts the video data generated at step S210 into print data adequatefor the virtual printer, based on the performance information as well asthe information regarding the basic settings of printing and theinformation regarding the paper settings, which are included in theprinter property data stored in the RAM 32 in the distributioninformation setting routine discussed above (excluding the informationregarding the printer group and the distributed form) (step S250). Afterthe data conversion, the CPU 30 transmits the converted print data tothe virtual printer driver 110 (step S260). On completion of theprocessing at step S260, the CPU 30 exits from the processing routine inthe application program 100.

When the print data adequate for the virtual printer is transmitted fromthe application program 100, the CPU 30 shifts the processing to thevirtual printer driver 110 and receives the transmitted print data (stepS350). The CPU 30 subsequently outputs the input print data asintermediate print data to the HDD 41 (step S360). A data set or a setof the intermediate print data is then stored as an intermediate printfile MF into the HDD 41. On completion of the processing at step S360,the CPU 30 exits from the processing routine in the virtual printerdriver 110.

FIGS. 15 and 16 are flowcharts showing a processing routine described inthe distributed printing utility 120. This processing routine isactivated after conclusion of the processing routine in the virtualprinter driver 110. When the program enters this processing routine, asshown in FIG. 15, the CPU 30 first reads the intermediate print data inthe intermediate print file MF from the HDD 41 (step S410). The CPU 30subsequently reads the printer property data, which include the variouspieces of information set in the distribution information settingroutine (step S420).

The CPU 30 then carries out an allocation specification routine (stepS430), which specifies allocation of the intermediate print data inputat step S410, based on the information with regard to the printer groupand the distributed form included in the printer property data input atstep S420. The allocation specification routine specifies allocation ofthe respective pages included in the intermediate print data to therespective printers 60, 70, and 80 belonging to the specified printergroup. The respective pages of the intermediate print data are allocatedto the printers 60, 70, and 80, in order to attain the distributed formset in the ‘Distributed Printing Properties’ dialog box WN2 (that is,the distributed form displayed in the distributed form display box dd ofthe ‘Distribution Settings’ card CD1 shown in FIG. 10).

FIG. 17 is a flowchart showing the details of the allocationspecification routine executed at step S430. When the program entersthis routine, the CPU 30 first specifies the total number of pages to beprinted according to the intermediate print data input at step S410(step S431). The CPU 30 then specifies printers as destinations ofdistribution, based on the information with regard to the printer groupincluded in the printer property data read at step S420 (step S432). TheCPU 30 collects the performance information of the respective printers60, 70, and 80 from the real printer drivers 130, 140, and 150, whichare respectively prepared for the printers 60, 70, and 80 specified asthe destinations of distribution (step S433). The CPU 30 then reads theprinting speed performances of the respective printers 60, 70, and 80from the collected information and calculates the performance ratio ofthe printers 60, 70, and 80 with regard to the printing speed from theprinting speed performances (step S434).

The CPU 30 subsequently determines whether or not the speed preferencemode is set (step S435). The concrete procedure reads the informationwith regard to the distributed form included in the printer propertydata read at step S420 and carries out the determination based onactivation or inactivation of the ‘Bundle by Copy or Page’ command, thatis, the on-off state of the check box id3. In the speed preference mode,that is, in the off state of the check box id3, the CPU 30 specifiesallocation of the intermediate print data input at step S410 by takinginto account the performance ratio calculated at step S434 (step S436).The concrete procedure first specifies the ratio of pages allocated tothe respective printers corresponding to the performance ratiocalculated at step S434. For example, when the performance ratio of theprinters 60, 70, and 80 is 1:2:2, the ratio of pages allocated to therespective printers 60, 70, and 80 is also set equal to 1:2:2. Theconcrete procedure then divides the intermediate print data input atstep S410 by page and allocates the preset pages to the respectiveprinters 60, 70, and 80 belonging to the specified printer group, inorder to attain the distributed form set in the ‘Distributed PrintingProperties’ dialog box WN2. The division of the pages should satisfy thespecified ratio of the pages allocated to the respective printers.Information regarding the preset pages allocated to the respectiveprinters is stored as output resource list data into the RAM 32.

FIG. 18 shows an example of the output resource list data. Theillustrated example follows the allocation of FIG. 8. In the illustratedexample, pages 1, 2, 3, and 4 are allocated to the first printer 60 (theprinter having the first ordinal number) in this sequence as pagenumbers to be printed. Pages 5, 1, 2, 3, 4, 5, 1, and 2 are allocated tothe second printer 70, and pages 3, 4, 5, 1, 2, 3, 4, and 5 areallocated to the third printer 80 (the printer having the last ordinalnumber) in the respective sequences.

When it is determined at step S435 that the speed preference mode is notset, that is, in the on state of the check box id3, on the other hand,the CPU 30 specifies allocation of the intermediate print data input atstep S410, in order to prevent one copy or one set of identical pagesfrom being printed with multiple printers, that is, to attain thehandling preference mode (step S437). The concrete procedure divides theintermediate print data input at step S410 by page and allocates thepreset pages to the respective printers 60, 70, and 80 belonging to thespecified printer group, in order to prevent each copy or a set ofidentical pages (this depends upon the state of the check box id2) frombeing printed with multiple printers and attain the distributed form setin the ‘Distributed Printing Properties’ dialog box WN2. Informationregarding the preset pages allocated to the respective printers isstored as output resource list data into the RAM 32.

FIG. 19 shows an example of the output resource list data. Theillustrated example follows the allocation of FIG. 9. In the illustratedexample, pages 1, 2, 3, 4, and 5 are allocated to the first printer 60in this sequence as page numbers to be printed. Pages 1, 2, 3, 4, 5, 1,2, 3, 4, and 5 are allocated to the second printer 70, and pages 1, 2,3, 4, and 5 are allocated to the third printer 80 in the respectivesequences.

After conclusion of either step S436 or step S437, the program goes toEND and exits from this processing routine.

The following series of processing is carried out to actualize theprinting operation according to the allocation of the pages to theoutput resources specified at either step S436 or step S437. Referringto the flowchart of FIG. 16, the CPU 30 first sets a value ‘1’ to aprinter counter C1 representing a target printer used for printing (stepS440). The printer counter C1 shows each available printer as thedestination of distribution; the value ‘1’ represents the first printer60, the value ‘2’ represents the second printer 70, and the value ‘3’represents the third printer 70.

The CPU 30 subsequently gives an instruction to change the settings tothe printer specified by the value of the printer counter C1 (stepS450). This processing makes the target printer ready for printing viathe printer driver by transmitting the required information on thesettings among the information with regard to the basic settings ofprinting and the information with regard to the paper settings includedin the printer property data input at step S420 to the printer driver.For example, the procedure informs the printer driver of the paper type‘Glossy’ to make the printer ready for printing suitable for the glossypaper.

The CPU 30 sets a value ‘1’ to a page counter C2 representing the pagenumber to be printed (step S460). The CPU 30 then determines whether ornot the output resource list data obtained at step S430 includes thepage specified by the values of the printer counter C1 and the pagecounter C2 (step S470). When the result of the determination shows thatthe output resource list data includes the specified page, the followingseries of processing is carried out. The CPU 30 gives an output commandto the real printer driver 130 (140 or 150) of the printer specified bythe value of the printer counter C1 to make the specified printer carryout printing (step S480). The real printer driver 130 (140 or 150)receiving the output command returns the performance information of thecorresponding printer 60 (70 or 80), and the CPU 30 inputs thetransmitted performance information (step S490).

The CPU 30 subsequently generates final print data with regard to thepage specified by the values of the page counter C2 and the printercounter C1, based on the input performance information as well as theinformation with regard to the basic settings of printing and the papersettings included in the printer property data input at step S420(excluding the information with regard to the printer group and thedistributed form) (step S500). The concrete procedure of step S500extracts page data regarding the page corresponding to the value of thepage counter C2 from the intermediate print data input at step S410 andcarries out the rendering process to convert the extracted page datainto data suitable for the printer 60 (70 or 80) corresponding to thevalue of the printer counter C1 based on the performance information,the information regarding the basic settings of printing, and theinformation regarding the page settings, so as to generate the finalprint data.

The CPU 30 then outputs the generated final print data to the realprinter driver 130 (140 or 150) of the printer 60 (70 or 80)corresponding to the value of the printer counter C1 (step S510). Priorto execution of printing at steps S480 to S510, one modified proceduremay monitor the status of each printer 60, 70, or 80 based on the signaloutput from the corresponding real printer driver 130, 140, or 150. Whenthe result of monitoring shows that there is a long queue of print jobsin the printer specified as the output resource or the specified printeris in an error state, the modified procedure may change the outputresource to another printer or temporarily stop the output of the printjob.

The CPU 30 subsequently increments the value of the page counter C2 byone (step S520). In the case of the negative answer at step S470, theprogram skips the processing of steps S480 to S510 and directly proceedsto step S520. The CPU 30 then determines whether or not the currentvalue of the page counter C2 exceeds a value LC2 representing the lastpage (step S530). When it is determined that the current value of thepage counter C2 does not exceed the value LC2 representing the lastpage, the program returns to step S470 and generates and outputs thefinal print data on the new page specified by the incremented value.When it is determined at step S530 that the current value of the pagecounter C2 exceeds the value LC2 representing the last page, on theother hand, the CPU 30 increments the value of the printer counter C1 byone (step S540) and determines whether or not the current value of theprinter counter C1 exceeds a value LC1 representing the last printer(step S550). When it is determined that the current value of the printercounter C1 does not exceed the value LC1 representing the last printer,the program returns to step S450 and generates and outputs the finalprint data on each page of the print job with the next printer 70 (80 or60) specified by the incremented value of the printer counter C1. Whenit is determined at step S550 that the current value of the printercounter C1 exceeds the value LC1 representing the last printer, on theother hand, the program determines that generation and output of thefinal print data has been concluded for all the pages of the print jobrequired for printing with all the printers and goes to END to exit fromthe processing routine in the distributed printing utility.

The processing routine in the distributed printing utility is describedto generate and output the final print data regarding the first page tothe last page sequentially by the printer unit, that is, from the firstprinter to the last printer. Such description is, however, forconvenience of illustration in the flowchart. The actual procedurecarries out generation and output of the final print data regarding thefirst page to the last page by the respective printers in parallel bytime sharing. The series of processing is executed in parallel in therespective printers in the structure of the embodiment. A computer mainbody including multiple microprocessors may alternatively be used toattain completely parallel processing.

A6. Effects of Embodiment

FIG. 20 is a timing chart showing a procedure of distributed printingwith the computer system constructed as discussed above, compared with aprior art procedure. In the illustrated example, the print job is givento make each of the three printers 60, 70, and 80 print one copy of adocument including 3 pages. The procedure of this embodiment firstgenerates the intermediate print data ([1]) and carries out the parallelrendering process to sequentially convert the page data on the firstpage of the intermediate print data into data adequate for the printer60, the printer 70, and the printer 80 ([2], [3], [4]). Transmission ofthe data converted for the printer 60 (that is, the final print data) tothe printer 60 is carried out in parallel with the rendering process forthe next printer 70. In a similar manner, transmission of the converteddata to the printer 70 and to the printer 80 is carried out in parallelwith the rendering process for the next printer. The procedure thencarries out the parallel rendering process to sequentially convert thepage data on the second page of the intermediate print data into dataadequate for the printer 60, the printer 70, and the printer 80 ([5],[6], [7]). The procedure subsequently carries out the parallel renderingprocess to sequentially convert the page data on the third page of theintermediate print data into data adequate for the printer 60, theprinter 70, and the printer 80 ([8], [9], [10]). The printing operationof the whole print job is thus concluded.

The prior art procedure first carries out the rendering process toconvert the page data on the first page into data adequate for a firstprinter A and transmits the converted data by the rendering process tothe printer A. The prior art procedure then carries out the renderingprocess to convert the page data on the second page into data adequatefor the first printer A and transmits the converted data to the printerA. The prior art procedure subsequently carries out the renderingprocess to convert the page data on the third page into data adequatefor the first printer A and transmits the converted data to the printerA. In the same manner as for the first printer A, the proceduresequentially carries out the rendering process for the first page, thesecond page, and the third page and transmission of the converted datato a second printer B. Similarly, the procedure sequentially carries outthe rendering process for the first page, the second page, and the thirdpage and transmission of the converted data to a third printer C.

The procedure of the embodiment carries out the rendering process inparallel with transmission of the processed data to the printer.Compared with the prior art procedure, the procedure of this embodimentthus effectively shortens the total time required for printing.

In the procedure of this embodiment, the intermediate print data isobtained by simple output of a print command from the applicationprogram 100 to the virtual printer driver 110, and the distributedprinting of the intermediate print data with the printers 60, 70, and 80is automatically carried out. The operator is thus only required toexecute the ‘Print’ command once on the application program. Thisarrangement effectively ensures the excellent operatability.

In the structure of this embodiment, the distributed printing utility120 automatically specifies allocation of the respective pages of printdata to printers, and the operator is not required to individuallyoutput a print command to each printer specified as the destination ofdistribution. This ensures excellent operatability. In the speedpreference mode, the procedure of the embodiment calculates theperformance ratio of the respective printers 60, 70, and 80 with regardto the printing speed from the information on the printing speedperformances of the printers 60, 70, and 80, and specifies allocation ofthe pages to the respective printers 60, 70, and 80 corresponding to theperformance ratio. The printer having the high printing speedperformance prints a large number of pages, while the printer having thelow printing speed performance prints a little number of pages. Thismakes the respective printers conclude the printing operations almostsimultaneously. This arrangement effectively shortens the total timerequired for printing.

In the handling preference mode, the procedure of the embodimentprevents each copy or a set of identical pages from being printed withmultiple printers. Each copy or a set of identical pages is thus notparted in the resulting prints obtained from the respective printers.This effectively ensures the operatability in collection of theresulting prints.

In the structure of this embodiment, the mode is readily changed overbetween the speed preference mode and the handling preference mode bychecking or non-checking of the check box id3 ‘Bundle by Copy or Page’in the ‘Distributed Printing Properties’ dialog box WN2. This ensuresexcellent operatability.

In this embodiment, inputting ‘By Printer’ in the ‘Job Grouping’ datainput box id4 effects the speed preference even in the handlingpreference mode, which is set by checking the check box id3 ‘Bundle byCopy or Page’.

In the structure of this embodiment, the printing method is readilychanged over between gathering print and stack print by checking ornon-checking the check box id2 ‘Collate’.

The structure of this embodiment allows the operator to readily inputthe information with regard to the form of distributed printing and theinformation with regard to the printer group in the ‘DistributedPrinting Properties’ dialog box WN2 open on the CRT display 12.Especially the illustrated image in the distributed form display box ddin the ‘Distributed Printing Properties’ dialog box WN2 informs theoperator of the specified distributed form. The visual information ofthe distributed form prior to execution of actual distributed printingfurther enhances the operatability. In the example of FIG. 6, theprinter names specified as the destinations of distribution are notadded to the illustrated image in the distributed form display box dd.The printer names specified as the destinations of distribution mayalternatively be added to the illustrated image. Namely the printer namespecified as the destination of distribution is given to each set ofpages. This distinctly informs the operator of the printer specified asthe destination of distribution.

In the distributed printing control apparatus of the above embodimentaccording to the present invention, print data is directly output fromone computer 10 to the multiple printers 60, 70, and 80. Anotherpossible application is a client-server system, in which a server may beprovided on the computer network 90 to manage distributed printing withmultiple printers. In this application, the virtual printer driver isincorporated in each client, and the distributed printing utility isincorporated in the server.

B. Second Embodiment

B1. User Interface

The following describes a second embodiment of the present invention.The details of ‘A1. General Hardware Structure’, ‘A2. DistributedPrinting Process’, and ‘A3. Virtual Printer Driver’ discussed in thefirst embodiment are adopted in the second embodiment of the presentinvention. The same parts as those of the first embodiment are expressedby the same numerals. The differences between the first embodiment andthe second embodiment are part of the details of the user interface andpart of the computer programs. The details of the user interface arediscussed first.

Like the first embodiment, in the structure of the second embodiment, adialog box ‘Distributed Printing Properties’ is provided as the userinterface. FIG. 21 illustrates a dialog box WN12 ‘Distributed PrintingProperties’. Like the first embodiment, two cards CD11 ‘DistributionSettings’ and CD12 ‘Printer’ are provided in the dialog box WN12‘Distributed Printing Properties’. The ‘Distributed Settings’ card CD11is identical with the ‘Distributed Settings’ card CD1 of the firstembodiment (see FIG. 6).

The ‘Printer’ card CD12 is used to set the information with regard tothe printer group as the potential destinations of distribution, thebasic settings of printing, and the paper settings. This corresponds tothe card CD2 of the first embodiment. The operator selects either of thetwo cards CD11 and CD12 to be displayed in the dialog box WN12 throughoperations of the mouse 20. In the state of FIG. 21, the ‘Printer’ cardCD12 is selected. The division of the information into the cards CD11and CD12 is not restricted to the above example, but the information mayall be included in one card or may be divided into three or more cards.

The contents of the ‘Printer’ card CD12 are discussed in detail. Asillustrated, the ‘Printer’ card CD12 includes a ‘Printer Group’ fieldfd14, a ‘Select Option’ field fd15, a ‘Paper Settings’ field fd16, and asettings display box fd17.

The ‘Printer Group’ field fd14 specifies a group of printers, which areused for distributed printing of a document. The ‘Printer Group’ fieldfd14 includes a ‘Group Name’ data input box id111, a ‘Comment’ displaybox id112, a ‘Printers’ display box id113, a ‘Number of Printers’display box id114, and a ‘Group Settings’ button id115. In the followingdiscussion, the group of printers or the printer group may simply bereferred to as the group.

The ‘Group Name’ data input box id111 sets the name of the group. Aclick of a button id111 a with an inverse triangle on the right endopens a pull-down menu (see FIG. 31). A plurality of group names arepreset as possible options in this pull-down menu. The operator clicksone of the options included in the pull-down menu with the mouse 20, soas to set a desired group name in the data input box id111.

The ‘Comment’ display box id112 shows any comment given to the currentlyselected group in the ‘Group Name’ data input box id111. The ‘Printers’display box id113 shows the names of the printers belonging to thecurrently selected group in the ‘Group Name’ data input box id111. The‘Number of Printers’ display box id114 shows the number of printers usedfor distribution printing.

The ‘Group Settings’ button id115 is a switch to start variousoperations, such as addition of a new group or change of settings in anexisting group. The following describes the operation of adding a newgroup. When the operator clicks the ‘Group Settings’ button id115 withthe mouse 20, a ‘Group List’ dialog box is open on the CRT display 12.

FIG. 22 shows a ‘Group List’ dialog box WN13. As illustrated, the ‘GroupList’ dialog box WN13 includes a ‘List’ display box id121, an ‘Add’button id122, an ‘Edit’ button id123, and a ‘Delete’ button id124. The‘List’ display box id121 shows a list of existing groups. The ‘Add’button id122 is used to add a new group to the list. In response to aclick of the ‘Add’ button id122 with the mouse 20, a ‘Group Settings’dialog box is open on the CRT display 12.

FIG. 23 shows a ‘Group Settings’ dialog box WN14. As illustrated, the‘Group Settings’ dialog box WN14 includes a ‘Group Name’ data input boxid131, a ‘Comment’ data input box id132, a ‘Printers Belonging to’display box id133, and a ‘Printers Not Belonging to’ display box id134.

The ‘Group Name’ data input box id131 is used to input the name of theselected group of printers. The ‘Comment’ data input box id132 is usedto input any description of the selected group. The ‘Printers Belongingto’ display box id133 shows printers belonging to the selected group.The ‘Printers Not Belonging to’ display box id134 shows printers thatare not included in the selected group among a large number of presetprinter names.

The operator selects a desired one out of the printer names shown in the‘Printers Not Belonging to’ display box id134 and clicks an ‘Add’ buttonid135. The selected printer name is then transferred to the ‘PrintersBelonging to’ display box id133. In the example of FIG. 23, there arethe names of eight printers in the ‘Printers Not Belonging to’ displaybox id134. When the operator selects three printers ‘LP-100’, ‘LP-200’,and ‘LP-300’ and clicks the ‘Add’ button id135, the names of the threeselected printers are transferred to the ‘Printers Belonging to’ displaybox id133 as shown in FIG. 24.

The printers displayed in the ‘Printers Belonging to’ display box id133have the order of priority specified by the sequence of display. Theprinter displayed on the top has the highest priority, and the lowerpositioned printer has the lower priority. The displayed sequence of theprinters is coincident with the sequence of the shift to the ‘PrintersBelonging to’ display box id133. Selection of each printer out of theprinter names in the ‘Printers Not Belonging to’ display box id134 and asubsequent click of the ‘Add’ button id135 sequentially shifts theselected printer to the ‘Printers Belonging to’ display box id133. Thisspecifies the sequence of printers displayed in the ‘Printers Belongingto’ display box id133, that is, the order of priority allocated to therespective printers. The order of priority allocated to the respectiveprinters is utilized for allocation in the distributed printing.

A ‘Delete’ button id136 is used to delete a selected printer from thenames of the printers included in the ‘Printers Belonging to’ displaybox id133.

One or a plurality of printers are allocated to each group through aseries of operations on the ‘Group Settings’ dialog box WN14. Theresults of allocation are stored as group registration list data in theRAM 32. FIG. 25 shows an example of group registration list data PD. Thegroup registration list data PD includes one or multiple group names,wherein one or multiple printer names and any related comment are mappedto each group name.

The group names displayed in the ‘List’ display box id121 on the ‘GroupList’ dialog box WN13 are based on the group name data included in thegroup registration list data PD. Referring back to FIG. 21, the contentsof the ‘Group Name’ data input box id111, the ‘Comment’ display boxid112, and the ‘Printers’ display box id113 in the ‘Printer Group’ fieldfd14 are updated with the group registration list data PD, that is, thenew registration in the ‘Group List’ dialog box WN13 and the ‘GroupsSettings’ dialog box WN14. The pull-down menu open from the ‘Group Name’data input box id111 accordingly includes the group names registered inthe ‘Group List’ dialog box WN13. The registration in the ‘GroupSettings’ dialog box WN14 is reflected on the contents of the ‘Comment’display box id112 and the ‘Printers’ display box id113.

The ‘Select Option’ field fd15 is used to restrict the data input in the‘Paper Settings’ field fd16 in two different modes ‘FunctionalityPreference’ and ‘Speed Preference’. The field fd15 has a radio buttonBT1 corresponding to the ‘Functionality Preference’ mode and a radiobutton BT2 corresponding to the ‘Speed Preference’ mode. A click of theradio button BT1 or BT2 respectively activates the ‘FunctionalityPreference ‘mode or the ‘Speed Preference’ mode and restricts the datainput. Restriction of the data input in the ‘Paper Settings’ field fd16in each mode will be discussed later in detail.

The ‘Paper Settings’ field fd16 sets the paper and the printing qualityand has data input boxes ‘Paper Size’ ‘Orientation’, ‘Double-facedPrint’, ‘Paper Type’, ‘Color’, and ‘Resolution’ id141, id142, id143,id144, id145, and id146.

The ‘Paper Size’ data input box id141 sets the paper size as well as thepaper type. A pull-down menu (see FIG. 32) is open in response to aclick of a button id141 a with an inverse triangle on the right end. Aplurality of paper sizes are preset as possible options in thispull-down menu. Examples of the possible options include ‘A4 210×297mm’, ‘A4 Lateral 210×297 mm’, ‘Envelop 120×235 mm’, and ‘Postcard100×147 mm’.

The ‘Orientation’ data input box id142 represents the orientation ofpaper set in the printer and has two options ‘Portrait’ and ‘Landscape’.The ‘Double-faced Print’ data input box id143 has a check box to specifydouble-faced printing. When this check box is clicked, only the printershaving the double-faced printing function are used for distributedprinting.

The ‘Paper Type’ data input box id144 specifies the type of paper, and‘Plain’, ‘Superfine’, and ‘Glossy’ are provided as possible options. The‘Color’ data input box id145 specifies the type of ink used in theprinter 14, and ‘Color’ and ‘Black’ are provided as possible options.The ‘Resolution’ data input box id146 sets the printing resolution, and‘Fast’ and ‘Fine’ are provided as possible options. For example, ‘Fast’and ‘Fine’ respectively represent the resolutions of 360×360 (dots) and720×720 (dots).

A settings display box fd17 displays desired data among the settings inthe ‘Printer Group’ field fd14 and the ‘Paper Settings’ field fd16.

Various pieces of information with regard to the settings in the‘Distributed Printing Properties’ dialog box WN12, for example,information on the form of distributed printing, information on theprinter group as the destination of distribution, information on thepaper settings, and information on the basic settings of printing, areinput into the computer main body 16 through the user's operations ofthe mouse 20 and the keyboard 18.

B2. Computer Programs

Like the first embodiment, the computer programs are executed in thevirtual printer driver 110 and the distributed printing utility 120 inthe second embodiment. The distributed printing utility 120 of thesecond embodiment is identical with that of the first embodiment and isthus not specifically described here. The following describes thevirtual printer driver 110.

Like the first embodiment, the virtual printer driver 110 is stored inadvance in the floppy disk 22 and is installed from the floppy diskdrive 24 into the computer 10 according to an activated presetinstallation program. The virtual printer driver 110 may be stored inanother portable recording medium (carriable recording medium), such asa CD-ROM, a magneto-optic disc, or an IC card, in place of the floppydisk 22. The virtual printer driver 110 may be program data, which aredownloaded from a specific server connecting with an external computernetwork (for example, the Internet) via the computer network andtransferred to either the RAM 32 or the HDD 41.

FIG. 26 is a flowchart showing a processing routine described in thevirtual printer driver 110 as well as a processing routine described inthe application program 100. The CPU 30 in the computer main body 16starts the processing in the application program 100 and carries out aseries of image processing to generate video data (step S910). Theapplication program 100 may be a general purpose application programused to create documents and pictures, and video data is generated bythe functions characteristic of each application program.

The CPU 30 executes a ‘Print’ command provided in the applicationprogram and thereby outputs a print command for distributed printing(step S920). FIG. 27 illustrates a ‘Print’ dialog box WN16 open on theCRT display 12 in response to execution of the ‘Print’ command on theapplication program 100. As illustrated, the ‘Print’ dialog box WN16 hasa ‘Printer Name’ data input box id151. The print command for distributedprinting is output from the application program 100 via the operatingsystem to the virtual printer driver 110 in response to a click of an‘OK’ button id152 with the mouse 20, while a series of letters‘Distributed Printing’, which corresponds to the ‘Distributed Printing’icon IC4 discussed previously with FIG. 5, is selectively input in the‘Printer Name’ data input box id151. A click of a ‘Properties’ buttonid153 in the ‘Print’ dialog box WN16 shifts the processing to adistribution information setting routine executed in the virtual printerdriver 110. The process opens the ‘Distributed Printing Properties’dialog box WN12 on the CRT display 12 and reads input data from thekeyboard 18 and the mouse 20, so as to set various pieces of informationregarding the distributed printing.

The following describes a series of processing to set various pieces ofinformation relating to the distributed printing in the ‘DistributedPrinting Properties’ dialog box WN12. FIG. 28 is a flowchart showing adistribution information setting routine executed by the CPU 30. Whenthe program enters this routine, the CPU 30 first opens the ‘DistributedPrinting Properties’ dialog box WN12 shown in FIG. 21 on the CRT display12 (step S610). The CPU 30 then determines which of the ‘DistributionSettings’ card CD11 and the ‘Printer’ card CD12 is active in this dialogbox WN12 (step S620). When it is determined that the ‘DistributionSettings’ card CD11 is active, the program goes to step S630.

At step S630, the CPU 30 inputs diverse data through the operator's datainput operations with the keyboard 18 and the mouse 20 while theoperator checks the display on the CRT display 12. The diverse datainput here represent the settings in the ‘Distribution Settings’ cardCD11 in the ‘Distributed Printing Properties’ dialog box WN12, andincludes information with regard to the form of distributed printing.The CPU 30 subsequently stores the diverse data input at step S630 aspart of the printer property data into the RAM 32 (step S640). Theprogram then goes to RETURN and exits from this processing routine.

When it is determined at step S620 that the ‘Printer’ card CD12 isactive, on the other hand, the program goes to step S650 to execute adata input routine on the ‘Printer’ card CD12. The details of the datainput routine will be discussed later. Information with regard to theprinter group, information with regard to the paper settings, andinformation with regard to the basic settings of printing are input inthe ‘Printer’ card CD12 by execution of the data input routine. The CPU30 subsequently stores the diverse data input at step S650 as part ofthe printer property data into the RAM 32 (step S660). The program thengoes to RETURN and exits from this processing routine.

The following describes the details of the data input routine executedat step S650. FIGS. 29 and 30 are flowcharts showing the details of thedata input routine. When the program goes to step S650 in thedistribution information setting routine and starts the data inputroutine, the CPU 30 first reads input data through the operator's inputoperations with the keyboard 18 and the mouse 20 (step S710) as shown inFIG. 29. The CPU 30 then determines whether or not a button id111 aattached to the data input box id111 ‘Group Name’ is clicked with themouse 20, based on the input data (step S720). The following series ofprocessing is carried out in response to the click.

The CPU 30 first opens a pull-down menu MN1 for input of the group nameon the CRT display 12 (step S730). FIG. 31 shows an example of thepull-down menu MN1 for input of the group name open on the CRT display12. As illustrated, the pull-down menu MN1 is open immediately below the‘Group Name’ data input box id111. The pull-down menu MN1 includesmultiple group names as possible options. The concrete procedure of stepS730 specifies the options to be included in the pull-down menu MN1based on the group registration list data PD stored in the RAM 32 andopens the pull-down menu MN1 on the CRT display 12.

The CPU 30 then selects one group name in the pull-down menu MN1 inresponse to an operator's click with the mouse 20 (step S740). The namesof the printers belonging to the group expressed by the selected groupname are read from the group registration list data PD stored in the RAM32, is registered into a temporary area in the RAM 32, and is displayedin the ‘Printers’ display box id113 on the ‘Printer’ card CD12 (stepS750). As a result, the names of the printers belonging to the groupexpressed by the group name set in the ‘Group Name’ data input box id111are enumerated in the ‘Printers’ display box id113 as illustrated inFIG. 32.

The CPU 30 subsequently reads the performance information with regard tothe printers expressed by the printer names stored in the RAM 32 at stepS750 (step S760). Here the performance information includes informationwith regard to the printable paper sizes, the printable paper types, andpermission to double-faced print, and is received from the real printerdrivers provided for the respective types of the printers and loaded inadvance in the RAM 32. After execution of step S760, the program goes toRETURN and exits from this data input routine.

In a negative answer at step S720, on the other hand, the CPU 30 goes tostep S770 in the flowchart of FIG. 30. At step S770, it is determinedwhether or not a button id141 a attached to the ‘Paper Size’ data inputbox id141 on the ‘Printer’ card CD12 is clicked with the mouse 20, basedon the input data read at step S710. The following series of processingis carried out in response to the click.

The CPU 30 first detects the printable paper sizes in each printer,based on the performance information of each printer read at step S760(step S780). The CPU 30 then determines whether or not the‘Functionality Preference’ mode is selected in the ‘Select Option’ fieldfd15 on the ‘Printer’ card CD12 (step S790). The determination dependsupon selection of either the radio button BT1 corresponding to the‘Functionality Preference’ mode or the radio button BT2 corresponding tothe ‘Speed Preference’ mode.

When it is determined at step S790 that the ‘Functionality Preference’mode is selected, the CPU 30 selects all the printable paper sizes withany of the printers detected at step S780 (this corresponds to executionof the OR operation) (step S800). For example, when the printable papersizes with the printers 60 and 70 are ‘B5’ and ‘A4’ and the printablepaper sizes with the printer 80 are ‘B5’, ‘A4’, and ‘A3’, the procedureof step S800 selects all the paper sizes ‘B5’, ‘A4’, and ‘A3’ as thepossible options.

When it is determined at step S790 that not the ‘FunctionalityPreference’ mode but the ‘Speed Preference’ mode is selected, the CPU 30selects common paper sizes to al the printers among the printable papersizes in the respective printers detected at step S780 (this correspondsto the AND operation) (step S810). For example, when the printable papersizes with the printers 60 and 70 are ‘B5’ and ‘A4’ and the printablepaper sizes with the printer 80 are ‘B5’, ‘A4’, and ‘A3’, the procedureof step S810 selects the paper sizes ‘B5’ and ‘A4’ as the possibleoptions.

After execution of either step S800 or step S810, the CPU 30 goes tostep S820 to open a pull down menu MN2 for input of the paper size onthe CRT display 12. FIG. 32 shows an example of the pull-down menu MN2for input of the paper size open on the CRT display 12. As illustrated,this pull-down menu MN2 is open immediately below the ‘Paper Size’ datainput box id141. The pull-down menu MN2 includes the paper sizesselected at either step S800 or step S810 as possible options.

As shown in FIG. 32, in the case where the ‘Functionality Preference’mode is selected in the ‘Select Option’ field fd15, the pull-down menuMN2 for input of the paper size includes all the printable paper sizeswith any of the printers belonging to the currently selected group (thatis, the printers displayed in the ‘Printers’ display box id113). Forexample, the paper sizes ‘B5’, ‘A4’, and ‘A3’ are shown as possibleoptions.

As shown in FIG. 33, in the case where the ‘Speed Preference’ mode isselected in the ‘Select Option’ field fd15, on the other hand, thepull-down menu MN2 for input of the paper size includes the paper sizescommon to all the printers among the printable paper sizes in therespective printers belonging to the currently selected group (that is,the printers displayed in the ‘Printers’ display box id113). Forexample, the paper sizes ‘B5’ and ‘A4’ are shown as possible options.

Comparison between the display in the ‘Speed Preference’ mode shown inFIG. 33 and the display in the ‘Functionality Preference’ mode shown inFIG. 32 shows exclusion of the ‘A3’ paper size from the possibleoptions. One modified procedure of this embodiment may gray down thedisplay of the option to be excluded. The gray-down display means tolower the density of letters in the display and forbids selection withthe mouse 20, although the letters are distinguishable. This modifiedarrangement informs the operator of the non-settable conditions by lackof the functions in some printers.

Referring back to FIG. 30, after execution of step S820, the CPU 30selects one paper size in the pull-down menu MN2 in response to anoperator's click with the mouse 20 (step S830). The selected paper sizeis set in the ‘Paper Size’ data input box id141. The setting of thepaper size is then registered into the temporary area in the RAM 32(step S840).

The CPU 30 subsequently compares the paper size registered at step S840with the paper sizes of the respective printers detected at step S780,selects the printer that is incapable of printing the selected papersize among the printers belonging to the currently selected group, andgrays down the display of the selected printer in the ‘Printers’ displaybox id113 (step S850).

For example, when the ‘A3’ paper size is set in the ‘Paper Size’ datainput box id141 as shown in FIG. 34, the display of the names of theprinters that are incapable of printing the ‘A3’ paper size, forexample, ‘LP-100’ and ‘LP-200’, is grayed down among the printer namesdisplayed in the ‘Printers’ display box id113. The processing of stepS840 is carried out only in the ‘Functionality Preference’ mode. Sinceonly the paper sizes common to all the printers are selected in the‘Speed Preference’ mode, the processing of step S840 is not required.This arrangement distinctly informs the operator of the printers thatcan not be used for distributed printing. After execution of step S850,the program goes to RETURN and exits from this data input routine.

In the case of a negative answer at step S770, on the other hand, theCPU 30 goes to step S860 to input data in another data input box on the‘Printer’ card CD12 (step S860). The input data is registered into thetemporary area in the RAM 32. The program then goes to RETURN and exitsfrom this data input routine.

The data input routine starts when the processing shifts to step S650 inthe distribution information setting routine, and is iteratively carriedout in response to each data input in any of the various data inputboxes on the ‘Printer’ card CD12. The data input routine is concluded inresponse to a click of an ‘OK’ button BTOK provided at the lower-mostposition of the ‘Distributed Printing Properties’ dialog box WN12. Afterconclusion of the data input routine, the CPU 30 goes to step S660 inthe flowchart of FIG. 28 to store the various input data, which havebeen registered in the temporary area in the RAM 32 according to thedata input routine, into the RAM 32 as part of the printer propertydata. Information regarding the printer group, information regarding thepaper settings, and information regarding the basic settings of printingset in the ‘Printer’ card CD12 are then input into the computer mainbody 16.

In the structure of the embodiment, the options settable in the ‘PaperSize’ data input box id141 as one printing condition are restrictedaccording to the performances of the respective printers belonging tothe currently selected group. The input in the ‘Double-faced Print’ datainput box id143 is also restricted by a non-illustrated flowchartaccording to the performances of the respective printers belonging tothe currently selected group. In the case where at least one among theprinters included in the currently selected group has the function ofdouble-faced printing, data input in the ‘Double-faced Print’ data inputbox id143 is permitted (that is, input of either of the two conditions,double-faced print and no double-faced print, as the result of the ORoperation of the performance information of the respective printers isallowed) in the ‘Functionality Preference’ mode. In the ‘SpeedPreference’ mode, on the other hand, data input in the ‘Double-facedPrint’ data input box id143 is prohibited (that is, input of only onecondition, no double-faced print, as the result of the AND operation ofthe performance information of the respective printers is allowed). Theconcrete procedure activates the ‘Double-faced Print’ data input boxid143 in the ‘Functionality Preference’ mode, while graying down andinactivating the data input box id143 in the ‘Speed Preference’ mode.

After setting the various pieces of information relating to thedistributed printing in the ‘Distributed Printing Properties’ dialog boxWN12, a print command is output at step S920 in the flowchart of FIG. 26in response to a click of the ‘OK’ button id152 in the ‘Print’ dialogbox WN16 as discussed previously. In the case where the ‘Properties’button id153 is not clicked but the ‘OK’ button id152 is clickedimmediately with the mouse 20, the printer property data stored in theRAM 32 in the previous cycle of the distribution information settingroutine (in the first cycle, preset initial printer property data) aremaintained without any modification.

In response to the output of the print command at step S920, the CPU 30shifts the processing to the virtual printer driver 110 and determineswhether or not the print command is input from the application program100 (step S1010). In the case of no input of the print command, the CPU30 iteratively carries out the decision at step S1010 and waits forinput of the print command from the application program 100. In the caseof input of the print command at step S1010, on the other hand, the CPU30 carries out the series of processing discussed below.

The CPU 30 first reads from the distributed printing utility 120 theperformance information of the respective printers 60, 70, and 80, whichhas been transmitted from the real printer drivers 130, 140, and 150provided for the respective types of the printers 60, 70, and 80 to thedistributed printing utility 120 (step S1020). The CPU 30 then extractsthe highest performance out of the performance information of therespective printers 60, 70, and 80 and specifies the extracted highestperformance as the performance information of the virtual printer (stepS1030). The CPU 30 then transmits the performance information of thevirtual printer to the application program 100 (step S1040).

When the performance information of the virtual printer is transmittedfrom the virtual printer driver 110, the CPU 30 shifts the processing tothe application program 100 and receives the transmitted performanceinformation of the virtual printer (step S940). The CPU 30 subsequentlyconverts the video data generated at step S910 into print data adequatefor the virtual printer, based on the performance information as well asthe information regarding the basic settings of printing and theinformation regarding the paper settings, which are included in theprinter property data stored in the RAM 32 in the distributioninformation setting routine discussed above (excluding the informationregarding the printer group and the distributed form) (step S950). Afterthe data conversion, the CPU 30 transmits the converted print data tothe virtual printer driver 110 (step S960). On completion of theprocessing at step S960, the CPU 30 exits from the processing routine inthe application program 100.

When the print data adequate for the virtual printer is transmitted fromthe application program 100, the CPU 30 shifts the processing to thevirtual printer driver 110 and receives the transmitted print data (stepS1010). The CPU 30 subsequently outputs the input print data asintermediate print data to the HDD 41 (step S1060). A data set or a setof the intermediate print data is then stored as an intermediate printfile MF into the HDD 41. On completion of the processing at step S1060,the CPU 30 exits from the processing routine in the virtual printerdriver 110.

After conclusion of the processing routine in the virtual printerdriver, the distributed printing utility is activated, which isidentical with that of the first embodiment (see FIGS. 15 and 16) asmentioned above. The series of distributed printing process executed inthe distributed printing utility is identical with that of the firstembodiment shown in FIG. 20.

B3. Effects of Embodiment

In the second embodiment constructed as discussed above, the paper sizecondition set in the data input box id141 ‘Paper Size’ in the ‘Printer’card CD12 is restricted by the performances of the respective printersbelonging to the currently selected group. Namely the paper sizecondition set in the data input box id141 follows the performanceinformation of the respective printers. This ensures the adequate papersize condition and enables the distributed printing to be performedaccording to the performances of the printers, thus effectively assuringfavorable resulting prints.

In the structure of the embodiment, in the case of selection of the‘Functionality Preference’ mode, a set of all the printable paper sizeswith any of the printers belonging to the currently selected group isdisplayed as options in the pull-down menu MN2 for input of the papersize. In the case of selection of the ‘Speed Preference’ mode, on theother hand, a set of common paper sizes to all the printers among theprintable paper sizes in the respective printers belonging to thecurrently selected group is displayed as options in the pull-down menuMN2 for input of the paper size. In the ‘Functionality Preference’ mode,the printing operation utilizes the performance of any of the multipleprinters specified as the destinations of distribution. This ensures thehigh-performance printing. In the ‘Speed Preference’ mode, the printingoperation utilizes the performance common to all the multiple printersspecified as the destinations of distribution. This allows the printingoperation to be performed with any of the multiple printers, thusdesirably shortening the total time required for printing.

In the structure of this embodiment, the mode is changed over betweenthe ‘Functionality Preference’ mode and the ‘Speed Preference’ mode byselecting either of the radio buttons BT1 and BT2 on the ‘Printer’ cardCD12 displayed on the CRT display 12. The operator can thus freelyselect the priority of functionality or the priority of speed. Thisarrangement effectively ensures the excellent operatability.

In this embodiment, the radio buttons BT1 and BT2 are specificallyprovided for changing over the mode. One possible modification maychange over the mode between the ‘Functionality Preference’ mode and the‘Speed Preference’ mode according to the input data in an existing datainput box. For example, the process sets the ‘Functionality Preference’mode in response to selection of ‘Fast’ in the ‘Resolution’ data inputbox id146, while setting the ‘Speed Preference’ mode in response toselection of ‘Fine’.

In this embodiment, a plurality of printers as destinations ofdistribution are specified by the unit of a group in the ‘Group Name’data input box id111. This arrangement does not require individualspecification of each printer as a destination of distribution, thusenhancing the user's operatability. Allocation of the order of priorityto the printers belonging to the selected group enhances the convenienceof collection of the resulting prints.

Some examples of possible modification are given below.

(1) In the structure of the above embodiment, the ‘Printers’ display boxid113 only shows the names of the printers belonging to the currentlyselected group in the ‘Group Name’ data input box id111. One possiblemodification provides check boxes cbx before the respective printernames as shown in FIG. 35. In response to setting a selected group namein the ‘Group Name’ data input box id111, the names of all the printersbelonging to the selected group are shown in the ‘Printers’ display boxid113. In the initial state, the check boxes cbx provided before therespective printer names are all checked. When the operator desires toprohibit output of the print data to a certain printer because ofout-of-paper, failure, or any other reason, the operator releases thecheck in the corresponding check box cbx to exclude the printer from theoutput resource of the print data. This arrangement effectively ensuresthe excellent operatability.

In this modified structure, the options included in the pull-down menuMN2 for input of the paper size, which is open in the ‘Paper Size’ datainput box id141, depend upon the printers having checks in thecorresponding check boxes cbx. For example, when the check box cbx‘LP-300’ is inactivated to exclude the printer that is capable ofprinting the ‘A3’ paper size from the output resources of the print dataas shown in FIG. 36, in the ‘Functionality Preference’ mode, the option‘A3’ is grayed down to be not selectable in the pull-down menu MN2 forinput of the paper size.

(2) In the above embodiment, the paper size is discussed as thepredetermined condition relating to the printing performance of theprinter. The predetermined condition is, however, not restricted to thepaper size, but may be any other suitable conditions relating to theprinting performance, for example, data input in the respective datainput boxes id143, id144, id145, and id146 ‘Double-faced Print’, ‘PaperType’, ‘Color’, and ‘Resolution’.

(3) In the distributed printing control apparatus of the aboveembodiment according to the present invention, print data is directlyoutput from one computer 10 to the multiple printers 60, 70, and 80.Another possible application is a client-server system, in which aserver may be provided on the computer network 90 to manage distributedprinting with multiple printers. In this application, the virtualprinter driver is incorporated in each client, and the distributedprinting utility is incorporated in the server.

C. Third Embodiment

C1. Distributed Printing Process

The following describes a third embodiment of the present invention. Thedetails of ‘A1. General Hardware Structure’, ‘A2. Distributed PrintingProcess’, ‘A3. Virtual Printer Driver’, and ‘A4. User Interface’discussed in the first embodiment are adopted in the third embodiment ofthe present invention. The same parts as those of the first embodimentare expressed by the same numerals. The third embodiment has uniquecharacteristics in the ‘Distributed Printing Process’.

FIG. 37 is a block diagram showing the functions of a distributedprinting utility 120C in the third embodiment. As illustrated, thedistributed printing utility 120C includes an intermediate print datainput module 121, a property data input module 122, an allocationspecification module 123, an output data control module 124, a printersetting module 125, an output command output module 126, a performanceinformation input module 127, a final print data output module 128, aprinter monitoring module 129, and a performance information outputmodule 12 a, which exert the same functions as those of thecorresponding elements in the distributed printing utility 120 of thefirst embodiment. The output data control module 124 of this embodimentexerts the same functions as those of the output data control module 124of the first embodiment, as well as the functions of a printable areacomputation module 124 a and an area fitting module 124 b.

Prior to description of the modules 124 a and 124 b, the performanceinformation transmitted from the real printer drivers 130, 140, and 150is discussed. The performance information represents the performances ofthe printers 60, 70, and 80 corresponding to the real printer drivers130, 140, and 150 as discussed above, and includes information on theprintable paper sizes, the unprintable area size representing anunprintable area in the whole paper area, and permission to double-facedprint. The unprintable area size is set for four directions, top,bottom, left, and right sides of paper. In general, each printer has anunprintable area, where printing is not allowable because of variousreasons, for example, a sheet feed roller slips out of the end of paper.The size of the unprintable area depends upon the type of the respectiveprinters 60, 70, and 80. The performance information input module 127receives such various pieces of information from the real printerdrivers 130, 140, and 150.

The printable area computation module 124 a specifies a printable areawith any of the printers 60, 70, and 80 specified as the destinations ofallocation (hereinafter referred to as the common printable area), basedon the value of the unprintable area size out of the performanceinformation input into the performance information input module 127. Thearea fitting module 124 b restricts the printing area of theintermediate print data into the common printable area, in the casewhere the printing area defined by the intermediate print data is partlyout of the common printable area computed by the printable areacomputation module 124 a in the process of data conversion of theintermediate print data to data suitable for each of the printers 60,70, and 80. The converted print data output from the output data controlmodule 124 having the above functions is transmitted as final print datato the real printer drivers 130, 140, and 150 via the final print dataoutput module 128.

C2. Computer Programs

Like the first embodiment, the computer programs are executed in thevirtual printer driver 110 and the distributed printing utility 120C inthe third embodiment. The virtual printer driver 110 of the thirdembodiment is identical with that of the first embodiment and is thusnot specifically described here. The following describes the distributedprinting utility 120C.

Like the virtual printer driver 110, the distributed printing utility120C is stored in advance in the floppy disk 22 and is installed fromthe floppy disk drive 24 into the computer 10 according to an activatedpreset installation program. The installed distributed printing utility120 is stored in the HDD 41, is incorporated into the operating systemin response to power supply to the computer 10, and is loaded to apredetermined area in the RAM 32. Like the virtual printer driver 110,the distributed printing utility 120 may be stored in another portablerecording medium (carriable recording medium), such as a CD-ROM, amagneto-optic disc, or an IC card, in place of the floppy disk 22. Thedistributed printing utility 120 may be program data, which aredownloaded from a specific server connecting with an external computernetwork (for example, the Internet) via the computer network andtransferred to either the RAM 32 or the HDD 41.

FIG. 38 is a flowchart showing a first half of a processing routinedescribed in the distributed printing utility 120. This processingroutine is activated after conclusion of the processing routine executedin the virtual printer driver 110. When the program enters theprocessing routine, as shown in FIG. 38, the CPU 30 first inputs theintermediate print data in the intermediate print file MF from the HDD41 (step S410). The CPU 30 then inputs the printer property data as thevarious pieces of information set in the virtual printer driver 110(step S420). The processes of steps S410 and S420 are identical withthose of the first embodiment and are thus expressed by the same stepnumbers.

The CPU 30 subsequently sends a control signal to the real printerdrivers 130, 140, and 150 of the respective printers 60, 70, and 80 andreceives the performance information regarding the performances of theprinters 60, 70, and 80 from the respective real printer drivers 130,140, and 150 that have received the control signal (step S422). The CPU30 then extracts data on the unprintable area size on the top, bottom,left, and right sides of the whole paper area in the respective printersfrom the performance information and computes a common printable areawith any of the printers 60, 70, and 80 specified as the destinations ofdistribution from the data on the unprintable area size (step S424).

The computation carries out comparison among the unprintable area sizeson the top, bottom, left, and right sides of the whole paper area in therespective printers 60, 70, and 80, defines a common unprintable area bythe respective largest values, and specifies an area in the whole paperarea excluding this common unprintable area as the common printablearea. FIG. 39 shows a process of such computation. For example, when theunprintable area size of the printer 60 is left=4 mm, right=5 mm, top=3mm, and bottom=3 mm and the unprintable are size of the printers 70 and80 is left=3 mm, right=8 mm, top=3 mm, and bottom=8 mm, the size of thecommon unprintable area is left=4 mm, right=8 mm, top=3 mm, and bottom=8mm. The area in the paper area P excluding this common unprintable area(that is, the hatched area in the illustration) is specified as thecommon printable area. This step S424 corresponds to the printable areacomputation module 124 a discussed above.

The CPU 30 then corrects the margins defined by the intermediate printdata based on the common printable area computed at step S424 (stepS426). Here the margins represent the sizes of the top, bottom, left,and right spaces specified by the operator in the ‘Page Settings’ dialogbox in the process of generating the print data by the applicationprogram 100. When any of the margins is out of the common printablearea, the procedure of step S426 restricts the margins to valuescoincident with the common printable area. For example, when the commonprintable area has the size shown in FIG. 14 and the top, bottom, left,and right margins set by the application program are all equal to 5 mm,the top, bottom, left, and right margins are corrected to 5 mm, 8 mm, 5mm, and 8 mm. This step S426 corresponds to the area fitting module 124b discussed above.

The CPU 30 subsequently specifies allocation of the intermediate printdata, which has been subjected to the margin correction at step S426,based on the information with regard to the printer group and theinformation with regard to the distributed form included in the printerproperty data input at step S420 (step S430). This process specifiesallocation of the respective pages included in the intermediate printdata to the printers 60, 70, and 80 belonging to the selected printergroup. The concrete procedure of step S430 specifies allocation of therespective pages of the intermediate print data to the printers 60, 70,and 80, in order to attain the distributed form set in the ‘DistributedPrinting Properties’ dialog box WN2 (that is, the distributed formdisplayed in the distributed form display box dd of the ‘DistributionSettings’ card CD1 shown in FIG. 10). Information regarding the presetpages allocated to the respective printers is stored as output resourcelist data into the RAM 32.

FIG. 40 shows an example of the output resource list data. In theillustrated example, the print job is given to make each of the threeprinters 60, 70, and 80 print one copy of a document including 3 pages.The 1^(st) to the 3^(rd) pages are set as the page numbers to be printedwith each of the three printers 60, 70, and 80. The process of step S430is identical with that of the first embodiment and is thus expressed bythe same step number.

When allocation of the respective pages to the output resources isspecified at step S430, the program goes to a latter half of theprocessing routine to implement the actual printing operation accordingto the specified allocation. The latter half follows the processing ofsteps S440 to S550 of the first embodiment shown in FIG. 16.

In the third embodiment, the process of step S500 shown in FIG. 16extracts page data representing the page specified by the value of thepage counter C2 from the intermediate print data, which has been inputat step S410 and subjected to the margin correction at step S426, andconverts the extracted page data into data suitable for the printer 60(70 or 80) specified by the value of the printer counter C1, based onthe performance information as well as the information regarding thebasic settings of printing and the information regarding the papersettings, so as to generate the final print data. The margin correctionof the intermediate print data at step S426 effectively restricts theprinting area in each page of the final print data generated at stepS500 into the common printable area to all the printers 60, 70, and 80.

The series of distributed printing process executed in the distributedprinting utility 120C follows the process of the first embodiment shownin FIG. 20.

C3. Effects of Embodiment

The procedure of the third embodiment receives information on theunprintable area size, which represents an unprintable area in the wholepaper area, in each of the multiple printers 60, 70, and 80 specified asthe destinations of distribution, and computes a common printable areain the whole paper area with any of the printers 60, 70, and 80 from theinformation on the unprintable area size. The print data from theapplication program is then distributed and output to satisfy thecondition of the common printable area. The print data accordinglyoccupies an identical printing area in any of the multiple printers 60,70, and 80 specified as the destinations of distribution. The user canthus obtain resulting prints having the perfectly coincident size andposition of the printing area from the multiple printers 60, 70, and 80specified as the destinations of distribution.

The procedure of this embodiment makes the print data fit for the commonprintable area by simply correcting margins specified in the applicationprogram based on the common printable area. This effectively simplifiesthe configuration of the computer programs.

In the structure of the embodiment, the information on the unprintablearea size is input from the printer drivers provided for the respectiveprinters 60, 70, and 80. This facilitates input of the informationwithout requiring any specific input means.

In the structure of this embodiment, when any error arises in one of theprinters specified for distributed printing, another printer is used forrecovery. The common printable area is also allocated to the printerspecified as the recovery resource. Namely the user can obtain resultingprints having the perfectly coincident size and position of the printingarea from all the printers including the printer specified as therecovery resource.

Some examples of possible modification are discussed below.

(1) The procedure of the above embodiment receives the information onthe unprintable area size in the whole paper area from the multipleprinters specified as the destinations of distribution and computes thecommon printable area to all the printers from the input information.One possible modification may receive information on the printable areaand compute the common printable area from the input information. Thisarrangement is allowed since the printable area is complement of theunprintable area.

(2) The procedure of this embodiment makes the print data fit for thecommon printable area by simply correcting margins specified in theapplication program based on the common printable area. One possibleapplication may carry out data conversion to restrict the printing areaof each page in the final print data into the common printable area inthe processing of step S500, that is, in the rendering process thatgenerates final print data with the real printer drivers 130, 140, and150.

(3) In the distributed printing control apparatus of the aboveembodiment according to the present invention, print data is directlyoutput from one computer 10 to the multiple printers 60, 70, and 80.Another possible application is a client-server system, in which aserver may be provided on the computer network 90 to manage distributedprinting with multiple printers. In this application, the virtualprinter driver is incorporated in each client, and the distributedprinting utility is incorporated in the server.

The above embodiments are to be considered in all aspects asillustrative and not restrictive. There may be many modifications,changes, and alterations without departing from the scope or spirit ofthe main characteristics of the present invention. All changes withinthe meaning and range of equivalency of the claims are thereforeintended to be embraced therein.

INDUSTRIAL APPLICABILITY

The technique of the present invention is applicable to diverseinformation processing apparatuses like various computers connectablewith a plurality of printers.

1. A distributed printing control apparatus comprising: a dataallocation module that divides print data, which is generated by anapplication program and is an object to be printed, by page andspecifies information representing pages allocated to multiple printers;and a data output control module that outputs the print data in adistributive manner to the multiple printers according to theinformation specified by said data allocation module, said distributedprinting control apparatus being capable of printing multiple copies ofthe print data according to a requirement, wherein said data allocationmodule arranges pages included in each copy in a sequence of the pages,divides all the pages of the multiple copies into the number of themultiple printers specified as destinations of distribution, andallocates respective divisions to the multiple printers, said dataoutput control module carries out the distributive output of the printdata to the multiple printers in a substantially parallel manner, eachdistributive output having a convert process and a transmit process byeach page, the convert process converting the print data of each page,sequentially from a head page of each division, to a format suitable foreach printer specified as a destination of distribution, the transmitprocess transmitting the converted print data, and said data ouputcontrol module carries out a transmit process for a first printer inparallel with a convert process for a next printer.
 2. A distributedprinting control apparatus in accordance with claim 1, said distributedprinting control apparatus further comprising: a virtual printer driverstorage module that stores a virtual printer driver for specifyinginformation on a virtual printer corresponding to the multiple printers;and an intermediate print data generation module that executes thevirtual printer driver and thereby obtains intermediate print data,which is adequate for the virtual printer, from an the applicationprogram that generates source data of the print data, wherein theintermediate print data thus obtained is specified as the print dataused in said data allocation module and said data output control module.3. A distributed printing control apparatus comprising: a dataallocation module that divides print data, which is an object to beprinted, by page and specifies information representing pages allocatedto multiple printers; a data output control module that distributes theprint data to each of the multiple printers according to the informationspecified by said data allocation module and outputs the distributedprint data to each of the multiple printers via a printer drivercorresponding to a type of each printer; and a printer speed performancedetection module that collects information with regard to performancesof the multiple printers as destinations of distribution from theprinter driver and decides a performance on a printing speed of each ofthe multiple printers from the collected information of performances ofthe multiple printers, wherein said data allocation module specifies thepages allocated to the multiple printers according to the performance onthe printing speed of each printer decided by said printer speedperformance detection module.
 4. A distributed printing controlapparatus in accordance with claim 3, said distributed printing controlapparatus further comprising: a distribution information setting modulethat causes an input window to be displayed on a display device and setsvarious pieces of information regarding distribution of the print databased on input data from an input device, wherein said data allocationmodule specifies the pages allocated to the multiple printers, based onthe various pieces of information set by said distribution informationsetting module, and said distribution information setting modulecomprises a display control module that generates an illustrated image,which includes an arrangement of printing media and corresponds to theinformation specified by said data allocation module, based on thevarious pieces of information and causes the illustrated image to bedisplayed on said display device.
 5. A distributed printing controlapparatus for printing print data to be printed in multiple setscomprising: a setting module that receives instructions from a user anddetermines whether or not multiple printers should be prohibited fromprinting one copy or one set of identical pages in accordance with theuser's instructions; a data allocation module that, when the settingmodule determines that multiple printers should be prohibited fromprinting one copy or one set of identical pages in accordance with theuser's instructions allocates the print data to be printed in multiplesets to a single printer; and a data output control module that, whenthe setting module determines that multiple printers should beprohibited from printing one copy or one set of identical pages inaccordance with the user's instructions, outputs the print data to beprinted in multiple sets to the single printer such that each copy oreach set of identical pages is printed with an identical printer.
 10. Adistributed printing control method, comprising the steps of: (a)dividing print data, which is generated by an application program and isan object to be printed, by page and specifying information representingpages allocated to multiple printers; and (b) outputting the print datain a distributive manner to the multiple printers according to theinformation specified in said step (a), said distributed printingcontrol method being capable of printing multiple copies of the printdata according to a requirement, wherein said step (a) arranges pagesincluded in each copy in a sequence of the pages, divides all the pagesof the multiple copies into the number of the multiple printersspecified as destinations of distribution, and allocates respectivedivisions to the multiple printers, and said step (b) carries out thedistributive output of the print data to the multiple printers in asubstantially parallel manner, each distributive output having a convertprocess and a transmit process by each page, the convert processconverting the print data of each page, sequentially from a head page ofeach division to a format suitable for each printer specified as adestination of distribution, the transmit process transmitting theconverted print data, and said step (b) carries out a transmit processfor a first printer in parallel with a convert process for a nextprinter.
 11. A distributed printing control method that is capable ofprinting multiple copies of print data according to a requirement, saiddistributed printing control method comprising the steps of: (a)dividing the print data, which is an object to be printed, by page andspecifying information representing pages allocated to multipleprinters; (b) distributing the print data to each of the multipleprinters according to the information specified in said step (a) andoutputting the distributed print data to each of the multiple printersvia a printer driver corresponding to a type of each printer; and (c)collecting information with regard to performances of the multipleprinters as destinations of distribution from the printer driver anddeciding a performance on a printing speed of each of the multipleprinters from the collected information of performances of the multipleprinters, wherein said step (a) specifies the pages allocated to themultiple printers according to the performance on the printing speed ofeach printer decided in said step (c).
 12. A distributed printingcontrol method for printing print data to be printed in multiple sets,comprising the steps of: receiving instructions from a user anddetermining whether or not multiple printers should be prohibited fromprinting one copy or one set of identical pages in accordance with theuser's instructions. when it is determined that multiple printers shouldbe prohibited from printing one copy or one set of identical pages inaccordance with the user's instructions, allocating the print data to beprinted in multiple sets to a single printer; and when it is determinedthat multiple printers should be prohibited from printing one copy orone set of identical pages in accordance with the user's instructions,outputting the print data to be printed in multiple sets to the singleprinter such that each copy or each set of identical pages is printedwith an identical printer.
 13. A computer readable recording medium inwhich a computer program used in a distributed printing controlapparatus is recorded, said computer program causing print data, whichis an object to be printed, to be distributed to and printed withmultiple printers, and said computer program including programinstructions for causing a computer to perform the functions of: (a)dividing print data, which is generated by an application program and isan object to be printed, by page and specifying information representingpages allocated to multiple printers; and (b) outputting the print datain a distributive manner to the multiple printers according to theinformation specified by said function (a), wherein said function (a)arranges pages included in each copy in a sequence of the pages, dividesall the pages of the multiple copies into the number of the multipleprinters specified as destinations of distribution, and allocatesrespective divisions to the multiple printers, said function (b) carriesout the distributive output of the print data to the multiple printersin a substantially parallel manner, each distributive output having aconvert process and a transmit process by each page, the convert processconverting the print data of each page, sequentially from a head page ofeach division, to a format suitable for each printer specified as adestination of distribution, the transmit process transmitting theconverted print data, and said function (b) carries out a transmitprocess for a first printer in parallel with a convert process for anext printer.
 14. A computer readable recording medium in accordancewith claim 13, wherein said computer program includes programinstructions that further causes the computer to perform the functionsof: (c) providing in advance in a storage device a virtual printerdriver for specifying information on a virtual printer corresponding tothe multiple printers; and (d) executing the virtual printer driver andthereby obtaining intermediate print data, which is adequate for thevirtual printer, from an the application program that generates sourcedata of the print data, the intermediate print data obtained by saidfunction (d) being specified as the print data used for said functions(a) and (b).
 15. A computer readable recording medium in which acomputer program used in a distributed printing control apparatus isrecorded, said computer program causing print data, which is an objectto be printed, to be distributed to and printed with multiple printers,said computer program including program instructions for causing acomputer to perform the functions of: (a) dividing the print data, whichis an object to be printed, by page and specifying informationrepresenting pages allocated to multiple printers; (b) distributing theprint data to each of the multiple printers according to the informationspecified by said function (a) and outputting the distributed print datato each of the multiple printers via a printer driver corresponding to atype of each printer; and (c) collecting information with regard toperformances of the multiple printers as destinations of distributionand deciding a performance on a printing speed of each of the multipleprinters from the collected information of the performances of themultiple printers, wherein said function (a) specifies the pagesallocated to the multiple printers according to the performance on theprinting speed of each printer decided by said function (c).
 16. Acomputer readable recording medium in accordance with claim 15, whereinsaid computer program includes program instructions that further causesthe computer to perform the function of: (d) causing an input window tobe displayed on a display device and setting various pieces ofinformation regarding distribution of the print data based on input datafrom an input device, said function (a) specifies the pages allocated tothe multiple printers, based on the various pieces of information set bysaid function (d), and said function (d) comprises: the function ofgenerating an illustrated image, which includes an arrangement ofprinting media and corresponds to the information specified by saidfunction (a), based on the various pieces of information and causing theillustrated image to be displayed on said display device.
 17. A computerreadable recording medium in which a computer program used in adistributed printing control apparatus for printing print data to beprinted in multiple sets is recorded, said computer program includingprogram instructions for causing a computer to perform the functions of:receiving instructions from a user and determining whether or notmultiple printers should be prohibited from printing one copy or one setof identical pages in accordance with the user's instructions, when itis determined that multiple printers should be prohibited from printingone copy or one set of identical pages in accordance with the user'sinstructions, allocating the print data to be printed in multiple setsto a single printer; and when it is determined that multiple printersshould be prohibited from printing one copy or one set of identicalpages in accordance with the user's instructions, outputting the printdata to be printed in multiple sets to the single printer such that eachcopy or each set of identical pages is printed with an identicalprinter. 18-21. (canceled)
 22. A computer program product for use in adistributed printing control apparatus that causes print data, which isan object to be printed, to be distributed to and printed with multipleprinters, said computer program product comprising: a recording mediumhaving program code recorded therein, said program code including (a)program code for dividing print data, which is generated by anapplication program and is an object to be printed, by page andspecifying information representing pages allocated to multipleprinters; and (b) program code for outputting the print data in adistributive manner to the multiple printers according to theinformation specified by said program code (a), wherein said programcode (a) arranges pages included in each copy in a sequence of thepages, divides all the pages of the multiple copies into the number ofthe multiple printers specified as destinations of distribution, andallocates respective divisions to the multiple printers, said programcode (b) carries out the distributive output of the print data to themultiple printers in a substantially parallel manner, each distributiveoutput having a convert process and a transmit process by each page, theconvert process converting the print data of each page, sequentiallyfrom a head page of each division, to a format suitable for each printerspecified as a destination of distribution, the transmit processtransmitting the converted print data, and said program code (b) carriesout a transmit process for a first printer in parallel with a convertprocess for a next printer.
 23. A computer program product for use in adistributed printing control apparatus that causes print data, which isan object to be printed, to be distributed to and printed with multipleprinters, said computer program product comprising: a recording mediumhaving program code recorded therein, said program code including (a)program code for dividing-the print data, which is an object to beprinted, by page and specifying information representing pages allocatedto multiple printers; (b) program code for distributing the print datato each of the multiple printers according to the information specifiedby said program code (a) and outputting the distributed print data toeach of the multiple printers via a printer driver corresponding to atype of each printer; and (c) program code for collecting informationwith regard to performances of the multiple printers as destinations ofdistribution from the printer driver and deciding a performance on aprinting speed of each of the multiple printers from the collectedinformation of performances of the multiple printers, wherein saidprogram code (a) specifies the pages allocated to the multiple printersaccording to the performance on the printing speed of each printerdecided by said program code (c).
 24. A computer program product for usein a distributed printing control apparatus for printing print data tobe printed in multiple sets said computer program product comprising: arecording medium having program code recorded therein, said program codeincluding program code for receiving instructions from a user anddetermining whether or not multiple printers should be prohibited fromprinting one copy or one set of identical pages in accordance with theuser's instructions, program code for allocating the print data to beprinted in multiple sets to a single printer when it is determined thatmultiple printers should be prohibited from printing one copy or one setof identical pages in accordance with the user's instructions: andprogram code for outputting the print data to be printed in multiplesets to the single printer such that each copy or each set of identicalpages is printed with an identical printer when it is determined thatmultiple printers should be prohibited from printing one copy or one setof identical pages in accordance with the user's instructions. 25-54.(canceled)
 55. A computer program product for use in controllingdistributed printing, comprising: a recording medium having program coderecorded therein, said program code including (a) program code forspecifying multiple printers as destinations of distribution; (b)program code for outputting print data, which is an object to beprinted, to the multiple printers specified by said program code (a) ina distributive manner, (c) program code for causing a data input box forsetting a predetermined condition relating to a printing performance ofeach printer to be displayed on a display device, receiving input datainto the data input box from an input device, and setting thepredetermined condition based on the input data; (d) program code forcollecting performance information with regard to the predeterminedcondition from each of the multiple printers specified by said programcode (a); and (e) program code for restricting the input data in thedata input box according to the performance information of each printercollected by said program code (d), wherein said program code (e)specifies a set of performance information, which includes all theperformance information of the respective printers collected by saidprogram code (d), and restricts the input data in the data input boxwithin a range of the specified set of performance information. 56-65.(canceled)
 66. A computer program product, comprising: a recordingmedium having program code recorded therein, said program code including(a) program code for specifying multiple printers as destinations ofdistribution; (b) program code for setting paper information with regardto paper used for printing; and (c) program code for processingexternally input print data based on the specification by said programcode (a) and the setting by said program code (b) and outputting pluraldivisions of the print data, which satisfy the paper information, to themultiple printers specified as the destinations of distribution, whereinthe plural divisions of the print data output by said program code (c)are supplied to the multiple printers via printer drivers provided forthe respective printers, said program code further including: (d)program code for receiving information with regard to an unprintablearea included in a paper area in each of the multiple printers specifiedby said program code (a); and (e) program code for computing a printablearea in the paper area, which is printable with any of the multipleprinters, from the information of the respective printers received bysaid program code (d), wherein said program code (c) further includes:(c1) program code for causing the plural divisions of the print data tobe fit to the printable area computed by said program code (e).